汇编实验指导1

汇编实验指导1

ID:46232053

大小:470.39 KB

页数:25页

时间:2019-11-21

汇编实验指导1_第1页
汇编实验指导1_第2页
汇编实验指导1_第3页
汇编实验指导1_第4页
汇编实验指导1_第5页
资源描述:

《汇编实验指导1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《汇编语言程序设计》实验指导书实验1DEBUG的使用1、实验目的掌握DEBUG常用命令的使用;熟悉8086CPU内部有多少寄存器;掌握访问段式存储器结构地址的表示方法。2、实验内容将数据段中的两个数求和,结果保存在数据段小。源程序、机器语言程序如下:CS:0100Al0000MOVAX,[0000]CS:010303060200ADDAX,[0002]CS;0107A30400MOV[0004],AXCS:010ACBRETF数据段内容如下:DS:000023012500;两个已知数3、实验步骤(1)用E命令键人上述机器语言程序和数据段的初值。—EDS:00023012500—EDS:

2、0062A2A2A(2A为*标记,是为便于查看数据段内容而设置)—ECS:100A1000003060200—ECS:107A30400CB(2)用D命令检查数据段、代码段内容。—DDS:0—DCS:100(3)用T命令逐条执行上述程序,注意观察每条指令执行后相应寄存器的变化。(4)用U命令反汇编本程序。—U10010A(5)用R命令修改IP的内容为0100重新执行上述程序。—RIP显示:IP010A:0100(6)用G命令运行程序。—G=CS:0100107观察:IP=AX=—G=CS:010010A观察:IP=AX=4、实验思考题(1)用A命令输入源程序:CS:0100MOVAX,

3、FFFFSTC0104MOVDS,AXMOVBX,DSMOVES,BXMOVCX,ESMOVSS,CXMOVDX,SSMOVSP,DXMOVBP,SPMOVSI,BPMOVDI,SIJNB0121XORAX,DIJNZ0125CLCJMP01040121ORAX,DIJZ01000125HLT(2)用T命令氓步执行上述程序。观察结果,并注意标志寄存器的变化。实验2汇编语言程序的基本操作(汇编指令及寻址方式)1、实验目的了解汇编语言程序的基木结构,初步掌握川汇编语言设计、编写、调试和运行程序的方法。2、实验内容(1)试编写一程序,比较两个字符串STRINGI和STRING2所含的字符是否

4、相同。若相同,贝ij显示'Match';否则,显示'Nomatch*o参考程序如下:DATASEGMENTSTRINGIDB'Movethecursorbackward.*STRING2DB'Movethecursorbackward.*MESSIDB•Match.13,10,'$'MESS2DB*NOMatchl,,13,10,$DATAENDSPROGSEGMENTASSUMECS:PROG,DS:DATA,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVES,AXLEASI,STRINGILEADI,STRING2CLDMOVCX,25REPZCMPSBJZ

5、MATCHLEADX,MESS2JMPSHORTDISPMATCH:LEADX,MESSIDISP:MOVAH,091NT21HMOVAH,4CHINT21HPROGENDSENDSTART(2)两字节的二进制数加法要求:在存储单元A起有两字节的无符号加数,在单元B起有两个字节的无符号被加数,求其两数相加,结果存回A单元处。设二进制数低字节数在前,高字节数在后。分析:二进制数相加,可用二进制加法指令实现。如为多字节相加,应先从低字节数开始相加,然后再进行高字节数相加。高字节数相加时还应该考虑低字节数相加时有否进位(CF=1),故应使用带进位的加法指令。参考程序如下:DATASEGMEN

6、TADB5CH,85H;两字节运算数BDB43H,OABHDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVSI,0;置位移量初值MOVAL,A[SI];取加数低位ADDAL,B[SI];两数相加MOVA[SI],AL;存回A单元INCSI;调整位移量MOVAL,A[SI];取加数高位ADCAL,B[SI];带进位加MOVA[SI],AL;存回A单元MOVAH,4CHINT21HCODEENDSENDSTART本程序没有考虑把相加结果的进位存入存储单元中。如有进位,则在CF中。程序中使用SI作变址寻址,

7、是考虑多字节加法而引入的。可以通过它调整字节地址而简化多字节的加法运算。实际上,对于只有两个字节的加法,可以不引入变址寻址,而使用直接寻址完成字节相加。如高字节的相加可表示为:MOVAL,A+1ADCAL,B+1本题也可以使用字加法指令实现。两个字节为一个字,故使用一条二进制字加法指令就可以了。其程序如下:DATASEGMENTWADW855CHWBDW0AB43HWCDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。