《实验二 算术逻辑运算及移位操作》由会员分享,可在线阅读,更多相关《实验二 算术逻辑运算及移位操作(9页珍藏版)》请在金锄头文库上搜索。
1、实验二实验二 算术逻辑运算及移位操作算术逻辑运算及移位操作一实验任务一实验任务1.实验程序段及结果表格如表: 标志位CFZFSFOFPFAF000000000000000000000011000000000000000000000000000000000000程序段 1:MOV AX, 1018HMOV SI, 230AHADD AX, SIADD AL, 30HMOV DX, 3FFH ADD AX,BXMOV 20H, 1000HADD 20H, AXPUSH AXPOP BX000000000000000000100011100011100010010010000000001010000
2、010程序段 2:MOV AX, 0A0AHADD AX, 0FFFFHMOV CX, 0FF00HADC AX, CXSUB AX, AXINC AXOR CX, 0FFHAND CX, 0F0FHMOV 10H, CX000010000000000000000000000000程序段 3: MOV BL, 25HMOV BYTE PTR10H, 4MOV AL, 10H000000MUL BL 0000000000000000000000000程序段 4:MOV WORD PTR10H,80HMOV BL, 4MOV AX, 10HDIV BL00000000000000000010101
3、1000001000011000011001010001000001000100110程序段 5:MOV AX, 0DEC AXADD AX, 3FFFHADD AX, AXNOT AXSUB AX, 3OR AX, 0FBFDHAND AX, 0AFCFHSHL AX,1RCL AX,1000110分析:程序段 1: MOV AX, 1018H ;AX1018HMOV SI, 230AH ; SI230AHADD AX, SI ;AX=3322H,低 8 位为 00100010B,1 的个数;为偶数,PF=1,同时 D3 向 D4 有进位发生,AF=1ADD AL, 30H ;AX=3352
4、H,低 8 位 1 个个数为奇数,PF=0MOV DX, 3FFH ;DX3FFHADD AX,BX ;AX=3352H,MOV 20H, 1000H ;20H1000HADD 20H, AX ;20H=4352HPUSH AX ;POP BX ;BX=3352H程序段 2: MOV AX, 0A0AH ;AX0A0AHADD AX, 0FFFFH ;AX=0A09H,最高位进位 CF=1,低 8 位 1 的;个数为偶数 PF=1;D3 向 D4 进位 AF=1MOV CX, 0FF00H ;CX0FF00HADC AX, CX ;AX=090AH,最高位进位 CF=1,低 8 位 1 的个;
5、数为偶数 PF=1SUB AX, AX ; AX=0,运算结果为零 ZF=1 INC AX ;AX=1HOR CX, 0FFH ;CX=0FFFFH,最高位为 1,ZF=1,低 8 位 1 的;个数为偶数 PF=1AND CX, 0F0FH ;CX=0F0FH,低 8 位 1 的个数为偶数 PF=1MOV 10H, CX ;10H0F0FH程序段 3: MOV BL, 25H ;BL25HMOV BYTE PTR10H, 4 ;10H04HMOV AL, 10H ;AL04HMUL BL ;AL=94H程序段 4:MOV WORD PTR10H,80H ;10H0080HMOV BL, 4 ;
6、BL04HMOV AX, 10H ;AX0080HDIV BL ;AX=0020H程序段 5:MOV AX, 0 ;AX0000HDEC AX ;AX=0FFFFH,最高位为 1,SF=1,低 8;位 1 的个数为偶数 PF=1,最高位向前、;D3 向 D4 有借位,CF=1,AF=1ADD AX, 3FFFH ;AX=3FFEH,D3 向 D4 有进位,AF=1ADD AX, AX ;AX=7FFCH,低 8 位 1 的个数为偶数,PF=1;D3 向 D4 有进位,AF=1NOT AX ;AX=8003H SUB AX, 3 ;AX=8000H,低 8 位 1 的个数为偶数,PF=1;最高位
7、为 1,SF=1OR AX, 0FBFDH ;AX=0FBFDH,最高位为 1,SF=1AND AX, 0AFCFH ;AX=0ABCDH,最高位为 1,SF=1SHL AX,1 ;AX=579AH,低 8 位 1 的个数为偶数,PF=1,;算数结果溢出 OF=1,最高位进位 CF=1RCL AX,1 ;AX=0AF35H,低 8 位 1 的个数为偶数,;PF=1,算数结果溢出 OF=12.用 BX 寄存器作为地址指针,从 BX 所指的内存单元(0010H)开始连续存入三个无符号数(10H、04H、30H),接着计算内存单元中的这三个数之和,和放在 0013H 单元中,再求出这三个数之积,积放
8、 0014 单元中。写出完成此功能的程序段并上机验证结果。程序段:LEA BX,0010HMOV BX,10HMOV BX+1,04HMOV BX+2,30HMOV AX,0000HADD AL,BXADD AL,BX+1ADD AL,BX+2MOV DS:0013H,ALMOV AL,BXMUL BX+1MUL BX+2MOV DS:0014,AX上机验证:3.写出完成下述功能的程序段。上机验证你写出的程序段,程序运行的最后结果(AX)?(1) 传送 15H 到 AL 寄存器;(2) 再将 AL 的内容乘以 2;(3) 接着传送 15H 到 BL 寄存器;(4) 最后把 AL 的内容乘以 B
9、L 的内容。程序段:MOV CL,02HMOV AL,15HMUL CLMOV BL,15HMUL BL结果 AX=0372H 4写出完成下述功能的程序段。上机验证你写出的程序段,程序运行后的商?(1) 传送数据 2058H 到 DS:1000H 单元中,数据 12H 到 DS:1002H 单元中;(2) 把 DS:1000H 单元中的数据传送到 AX 寄存器;(3) 把 AX 寄存器的内容算术右移二位;(4) 再把 AX 寄存器的内容除以 DS:1002H 字节单元中的数;(5) 最后把商存入字节单元 DS:1003H 中。程序段:MOV DS:1000H,2058HMOV DS:1002H
10、,12HMOV AX,DS:1000HSAR AX,2MOV BL,DS:1002HDIV BLMOV DS:1003H,AX最后商为 73H5.下面的程序段用来清除数据段中从偏移地址 0010H 开始的 12 个字存储单元的内容(即将零送到这些存储单元中去) 。(1) 将第 4 条比较指令语句填写完整(划线处) 。MOV SI,0010HNEXT: MOV WORD PTRSI,0ADD SI,2CMP SI, 001CH JNE NEXTHLT(2) 假定要按高地址到低地址的顺序进行清除操作(高地址从 0020H 开始) ,则上述程序段应如何修改?MOV SI,0020HNEXT: MOV
11、 BYTE PTRSI,0SUB SI,1CMP SI,0014H JNE NEXTHLT6输入并运行表 1.3 中的程序段,把结果填入表右边的空格中,并分析结果,说明本程序段的功能是什么。程序段字单元(1A00H)=字单元(1A02H)=AA550000AA552AD5AA5555AAAA5555AAAA5555AAAA55AB55MOV 1A00H, 0AA55HMOV 1A02H, 2AD5HSHL WORD PTR1A02H,1 CMP 1A00H, 8000HCMCRCL WORD PTR1A02H,1RCL WORD PTR1A00H,154AAAB55说明:MOV 1A00H,
12、0AA55H ;1A00H 0AA55HMOV 1A02H, 2AD5H ;1A02H 2AD5HSHL WORD PTR1A02H,1 ;1A02H=DATA*2CMP 1A00H, 8000H ;1A00H8000H,结果不送回1A00HCMC ;进位标志取反RCL WORD PTR1A02H,1 ;将1A02H带 CF 的循环左移一位RCL WORD PTR1A00H,1 ;将1A00H带 CF 的循环左移一位二简答二简答3.简要说明 ADD,SUB,AND,OR 对标志位的影响。 答:4 条指令满足以下条件时会对个标志位产生影响: CF:当进行加减运算时若最高位向前有进位或借位,则 CF=1,否则 CF=0。 PF:当运算结果的低八位中 1 的个数为奇数时 PF=1,否则 PF=0。 AF:在加减法操作中,D3 向 D4 有进位或借位时 AF=1,否则 AF=0。 ZF:当运算结果为零时 ZF=1。 SF:当运算结果最高位为 1 时 SF=1,否则 SF=0。 OF:当运算结果溢出时 OF=1。4.简要说明一般移位指令与循环移位指令之间的区别 答:一般移位指令将最左(右)端移入 CF,而另一端则会补 0。循环移位指令 同样将最左(右)端移入 CF,但另一端会用 CF 或最左(右)端填充。