《微机原理与接口技术实验报告全实例代码.docx

《微机原理与接口技术实验报告全实例代码.docx

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《微机原理与接口技术实验报告全实例代码

实验一 上机练习实验目的:1、掌握用编辑软件编辑程序文本的方法。在DOS环境下,熟练掌握用MASM5.0宏汇编程序对ASM文件进行编译、连接等操作步骤。2、熟悉用DEBUG调试程序。实验要求:选取教科书中一典型例题,用编辑软件在PC机中形成ASM文件,然后编译、连接,生成目标文件和可执行文件。再用DEBUG程序进行调试。实验步骤:实验程序如下:data segmentary1 db 12,34,45,56,67,78,89,90,18cont1 equ $-ary1;ary1的长度sum1 dw?ary2 db 13h,24h,57h,68h,9ah,0bch,0cdh,0deh,80h,50hcont2 equ $-ary2sum2 dw?data endscode segmentassume cs:code, ds:datastart: mov ax,datamov ds,axlea si,ary1mov cx,cont1;设定循环次数为ary1的个数 call sumlea si,ary2mov cx,cont2 call summov ah,4ch;结束程序功能调用4CH int 21hsum proc ;求和程序段,求该段所有数之和xor ax,ax ;ax清零为下面加法准备next1: add al,[si]adc ah,0inc si loop next1mov [si],ax ret ;返回调用程序sum endp;程序段结束code endsendstart点击“运行”点击“编译成目标文件”,编译成功后,再“运行”=〉“生成可执行文件”,然后运行,即可。运行成功以后,可进行调试。点击工具栏的调试按钮,出现调试框。其命令如下:输入a,进行逐行汇编,输入c, 比较两内存块,输入d,内存信息以16进制显示;输入e,修改内存指定的字节;输入f,可以预置一段内存; 输入g,执行程序;输入h,制算术运算;输入i,从指定端口地址输入;输入l,读盘;输入m,内存块传送;输入n,置文件名;输入o,从指定端口地址输出;输入q,结束DEBUG调试;输入r,显示和修改寄存器;输入s,查找字节串;输入t,跟踪执行;输入u,反汇编;输入w,存盘操作。实验总结:通过实验,熟悉了MASM环境,了解了程序书写,编译和运行的方法。实验过程中,在调试的时候,各调试命令的用法十分复杂,如指令P,单输入p只会执行一步,若要一次执行多步,可以在后面加上数字。通过练习,熟悉了各调试指令。实验二 两个多位十进制数相加实验目的:1、学习数据传送和算术运算指令的用法。2、熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序过程。实验要求:将两个多位十进制数(如四位)相加,要求被加数、加数以ASCII码形式按顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前)。结果显示在屏幕上。实验步骤:实验程序如下:DATAS SEGMENTnum1 db3,2,4,5,0;被加数num2 db2,6,7,1,0;加数s db5423+1762=$;显示的公式形式,$表示输出结束DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,ES:DATASSTART:MOV AX,DATASMOV DS,AX;DS指向数据段mov ES,AX;ES指向数据段mov cx,5;5次循环lea dx,s ;要显示的字符串的首偏移地址mov ah,9h;9号DOS功能调用显示字符串s int 21hmov si,offset num1; si指向num1首地址mov di,offset num2 ; di指向num2首地址 clc;清零进位寄存器CFadds: LODSBadc al, [di];有符号加法aaa ;调整ASCII码加法结果指令 stosb;所得结果以字节为单位存储到数据段di指向的位置,di+1 loop adds;循环知道cx为零,cx-1mov ah,02h;以下为输出加法结果mov cx,5;共有5位数循环5次adjust:mov dl,[di-1]or dl,30h;二进制数转换成其相应ASCII码dec di;输出下一位 int 21h loop adjustMOV AH,4CH INT 21H;21号功能调用程序退出CODES ENDSENDSTART输入程序编译成功以后,显示如下图:实验总结:通过实验,学会了使用汇编语言实现多位十进制数的相加运算。实验中应注意,在声明data的部分数字的顺序和实际中数字的顺序是相

文档评论(0)

yingxiaorong28 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档