资源描述:
《实验三 汇编命令(伪指令)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验三汇编命令(伪指令)[实验目的]1.进一步熟悉汇编语言的汇编、连接、运行的全过程;2.熟悉汇编语言中的加减法处理指令、BCD码的调整指令和乘除法指令和符号位扩展指令;3.熟悉逻辑运算、移位操作及数码转换编程实验;4.熟悉汇编语言中数据定义伪指令的书写形式。[实验内容]1.二进制加、减法编程实验DATASEGMENTDATA1DW5311H,8A13H;表示数据8A135311HDATA2DW4783H,9526H;表示数据95264783HRESULT1DW2DUP(?);存放多字节加法的结果DATAENDSCODESEGMENTASSUMECS:CODE,DS:D
2、ATASTART:MOVAX,DATAMOVDS,AXMOVAX,DATA1MOVDX,DATA1+2ADDAX,DATA2;低字部分相加ADCDX,DATA2+2;高字部分带进位相加MOVRESULT1,AX;存放低字部分相加结果MOVRESULT1+2,DX;存放高字部分相加结果CODEENDSENDSTART实验拓展:(1)编写程序,实现长度为2字的两个多精度数相减。(2)编写程序,实现一个长度为3字的多精度数和一个长度为2字的多精度数相加减。1.十进制数的BCD加、减法编程实验DATASEGMENTBCD1DB34H,18H;压缩的BCD码表示十进制数1834B
3、CD2DB89H,27H;压缩的BCD码表示十进制数2789RESULT1DB2DUP(?);存放压缩的BCD码相加的结果BCD3DB05H,02H;非压缩的BCD码表示十进制数25BCD4DB08H,03H;非压缩的BCD码表示十进制数38RESULT2DB2DUP(?);存放非压缩的BCD码相加的结果DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;压缩的BCD码相加计算MOVAL,BCD1ADDAL,BCD2DAAMOVRESULT1,ALMOVAL,BCD1+1ADCAL,BCD2+
4、1DAAMOVRESULT1+1,AL;非压缩的BCD码相加计算MOVAL,BCD1ADDAL,BCD2AAAMOVRESULT2,ALMOVAL,BCD1+1ADCAL,BCD2+1AAAMOVRESULT2+1,ALCODEENDSENDSTART实验拓展:(1)编写程序,实现长度为2字节的缩与非压缩的BCD码相减。(2)编写程序,实现一个长度为3字节2字节的压缩与非压缩的BCD码相减。1.二进制乘、除法编程实验DATASEGMENTDIVIDENDDB53H,11H,8AH;表示数据8A1153HDIVISORDB47HQUOTIENTDB3DUP(0);存放除法
5、结果的商REMAINDERDB0;存放除法结果的余数DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,DIVIDEND+2MOVAH,0DIVDIVISORMOVQUOTIENT+2,ALMOVAL,DIVIDEND+1DIVDIVISORMOVQUOTIENT+1,ALMOVAL,DIVIDENDDIVDIVISORMOVQUOTIENT,ALMOVREMAINDER,AHCODEENDSENDSTART实验拓展:(1)被除数是一个3字长的有符号数,除数是一个1字长的有符号数,求
6、两个数相除的商和余数。(2)求两个2字长的无符号数相乘的结果,并将结果保存在存储空间中。1.逻辑运算编程实验(验证性实验)(1)用A命令编写程序片段,实现逻辑非,逻辑与,逻辑或,逻辑异或,逻辑测试运算;(2)得到实际的结果,用T或P命令查看结果正确性。(3)实验例子,逻辑非:NOT14H逻辑与:32HAND0FH逻辑或:32HOR0FH逻辑异或:32HXOR0FH(4)进行逻辑测试运算中,注意状态和标志位的变化,并记录。实验拓展:(1)对寄存器清0,有几种方式?怎样用逻辑运算命令来实现?(2)逻辑测试命令前后,状态和标志有什么变化?为什么?(3)检测一操作数与另一确定的
7、操作数是否相等,用逻辑指令如何实现?1.移位操作编程实验(设计性实验)(1)用A命令写程序片段,在寄存器AX中存入一个数,要求对其用移位命令进行乘8,除4的操作。(2)编写程序片段,实现如下的计算A=10*B,要求用到移位命令,不用乘法计算。(3)编写指令序列把由DX和AX组成的32位二进制数进行算术左移。(DX,AX)算术左移1位指令序列(DX,AX)循环左移1位指令序列SHL AX,1RCL DX,1SHLD DX,AX,1RCL AX,1实验拓展:(1)移位指令如何影响标志位CF、OF?2.ASCII码表示的十进制数、二进制数和B