汇编语言程序设计(第二版)课后习题答案
- 格式:doc
- 大小:164.00 KB
- 文档页数:25
Program terminated normally
-q
实验4 [bx]和loop的使用
(3)下面的程序功能是将“mov ax,4c00h"之前的指令复制到内存0:200处,补全程序。
上机调试,跟踪运行结果。
assume cs:code
code segment
mov ax, code ;或mov ax, cs
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx, 18h ;或mov cx, 17h ;或sub cx,5
s: mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
此题有多个答案,因为mov用在寄存器之间传送数据的指令是2个字节,用在寄存器和立即数之间是3个字节
答案1:mov ax,cs (占2个字节)
mov cx,17
答案2:mov ax,code (占3个字节)
mov cx,18
答案3:mov ax,cs 或mov ax,code
把mov cx, 改成sub cx,5
(因为在载入程序时,cx保存程序的长度,减去5是为减去mov ax,4c00h和int 21h的长度)
此题的目的是:。
4.1 指出下列指令的错误:(1) MOV AH, BX ;寄存器类型不匹配(2) MOV [BX], [SI] ;不能都是存储器操作数(3) MOV AX, [SI][DI] ;[SI]和[DI]不能一起使用(4) MOV MYDAT [BX][SI], ES:AX ;AX寄存器不能使用段超越(5) MOV BYTE PTR [BX], 1000 ;1000超过了一个字节的范围(6) MOV BX, OFFSET MYDAT [SI] ;MYDAT [SI]已经是偏移位置,不能再使用OFFSET(7) MOV CS, AX ;CS不能用作目的寄存器(8) MOV ECX, AX ;两个操作数的数据类型不同答:见注释。
4.2 下面哪些指令是非法的?(假设OP1,OP2是已经用DB定义的变量)(1) CMP 15, BX ;错,立即数不能作为目的操作数(2) CMP OP1, 25(3) CMP OP1, OP2 ;错,不能都是存储器操作数(4) CMP AX, OP1 ;错,类型不匹配,应为CMP ax, word ptrop1答:见注释。
4.3 假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列哪些指令是非法的?它们的错误是什么?(1) MOV BP, AL ;错,寄存器类型不匹配(2) MOV WORD_OP [BX+4*3][DI], SP(3) MOV WORD_OP1, WORD_OP2 ;错,不能都是存储器操作数(4) MOV AX, WORD_OP1[DX] ;错,DX不能用于存储器寻址(5) MOV SAVE_WORD, DS(6) MOV SP, SS:DATA_WORD [BX][SI](7) MOV [BX][SI], 2 ;错,[BX][SI]未指出数据类型(8) MOV AX, WORD_OP1+WORD_OP2(9) MOV AX, WORD_OP1-WORD_OP2+100(10)MOV WORD_OP1, WORD_OP1-WORD_OP2答:见注释。
4-5原题:打印出下题的结果main(){int a=5,b=7;float x=,y=;char c='A';long n=1234567; unsigned u=65535;printf("%d%d\n",a,b); printf("%3d%3d\n",a,b); printf("%f,%f\n",x,y); printf("%-10f,%-10f\n",x,y); printf("%,%,%4f,%4f,%3f,%3f\n",x,y,x,y,x,y);printf("%e,%\n",x,y);printf("%c,%d,%o,%x\n",c,c,c,c); printf("%ld,%lo,%x\n",n,n,n);printf("%u,%o,%x,%d\n",u,u,u,u); printf("%s,%\n","COMPUTER","COMPUTER"); }结果:57+01, +02A,65,101,411234567,4553207,d68765535,177777,ffff,-1COMPUTER, COM 4-6原题:用下面的 scanf 函数输入数据,使 a=3,b=7,x=,y=,c1='A',c2='a'。
问在键盘上如何输入main(){int a,b;float x,y;char c1,c2; scanf("a=%d,_b=%d",&a,&b);scanf("_%f_%e",&x,7y); scanf("_%c_%c",&c1,&c2);}答案:输入格式为: a=3,b=7 A a 4-7原题:用下面的scanf 函数输入数据使a=10,b=20,c1='A',c2='a',x=,y= z=, 请问在键盘上如何输入数据scanf("%5d%5d%c%c%f%f%*f,%f",&a,&b,&c1,&c2,&x,&y,&z);答案:输入格式为:10 ,友情提示:10与20之间是 3 个空格,而那个是随便一个浮点数即可。
汇编语言程序设计课后答案天龙百度@n维空间提供第二章(更新完毕~)1。
在80x86微机的输入输出指令中,i/o端口号通常就是由dx寄存器提供更多的,但是有时也可以在指令中轻易选定00---ffh的端口号。
何况,可以轻易由指令选定的i/0端口数~解答:有256个~~书上有原话~~可以找到~~2。
存有两个16十一位字节1ee5h和2a3ch分别存放在80x86微机的存储器的000b0h 和000b3h单元中,Poissons图则表示出来它们在存储器里的放置情况。
解答:如下图.第一个络子为000b0h字单元,注意,是字单元~~第五个格子为000b3h字单元~e51e3c2a唉,羞愧,学计算机的,竟然连个表格也搞不好!3.图在书上,我就不图画了,太麻烦~~轻易请问吧~解答:30022h字节单元内容:abh30024h字节单元内容:efh30021h字单元内容:ab34h30022h字单元内容:cdabh4.对了,看这个的人.,肯定都有那本书,所以,以后我就不抄题目哈~~~答疑:这三个物理地址都就是3017ah,刚好说明了相同的段地址和偏转地址对应同一物理地址~~5.解答:cs+ip第一个字的物理地址为:0aaa40h6.答疑:图,真的不晓得怎么画,等待我想要办法~~条件标志of,sf,zf,cf,的值依次为:0,0,0,07。
下列操作可使用那些寄存器?(1)乘法和加法ax,bx,cx,dx,当然,除了这几个通用寄存器的多寡位了,如ah,al,.等~~(2)循环计数cx(3)乘法和除法dx,ax,ah,al(4)保存段地址cs,ds,es,ss(5)表示运算结果为oflags(6)将要执行的指令地址ip(7)将要从堆栈抽出数据的地址bp,sp,ss天龙百度@n维空间提供8。
可以用以命令存储器地址的寄存器存有:bx,sp,bp,di,cs,ds,si,es,ss,ip9。
一一对应;5--a4--b2--c3--d12--e9--f11--g10--h13--i8--j7--k6---l1--m15--n14--o第三章1。
《C语言程序设计能力教程(第二版)》课后作业及实训题参考答案第1章进入C语言程序世界二、1. I love China!printf("we are students.\n")2. 6项目实训题参考答案1.编写一个C程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *I am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf("********************\n");printf(" I am a student!\n ");printf("********************\n");}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。
解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf("v=%d",v);}本程序运行结果为:v=3000第2章编制C程序的基础知识一选择题C B A B A C C二操作题3.,2.,-8.2. ABC DEFGHwhy is 21+35 equal 523.3 14 32 31 24. aa bb cc abcA N项目实训题1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。
#define M 5main(){ int n,c;n=2; c=M*n;printf("%d\n",c); }2.编程求下面算术表达式的值。
(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。
(1)main(){ int a=7;float x=2.5,y=4.7;printf("%f\n",x+a%3*(int)(x+y)%2/4); }(2)main(){ int a=2,b=3;float x=3.5,y=2.5;printf("%f\n",(float)(a+b)/2+(int)x%(int)y); }第三章顺序结构程序设计一选择题A C D C C二操作题1. x=3,a=2,b=32. z=12.3. 1 2 1a2 1 2三.编程题编程题1. 某工种按小时计算工资,每月劳动时间(小时)×每小时工资=总工资,总工资中扣除10%公积金,剩余的为应发工资。
第四章汇编语言程序设计习题答案一、单项选择题1.C2.B3.C4.C5.C6.A7.A8.C9.B10. D11.B12.B13.D14.C15.C16.A17.D18.D19.A20. C21.B22.D23.D24. A二、多项选择题1.ABCEF2.ACE3.AC4.ABCD三、填空题1.PARA2.1,2,60,120, 13.SEGMENT,ENDS4.12005.段内转移,段间转移6.AH7.过程,PROC,RET,NEAR,FAR8.LEA BX,BUF9.1, 410..0504H11.ASM,EXE12.立即寻址,直接寻址四、判断题××××V V V××V五、程序分析题1. 32.12H,3412H3.46H,73H4.(1) 从目的串中查找是否包含字符‘0’,若找到则停止,否则继续重复搜索。
(2) ZF=1, 说明已找到字符ZF=0, 说明未找到字符CX 0,说明中途已找到字符退出CX=0,且ZF=0说明串中无字符‘0’5.1, 0, 3, 2, 5, 4, 7, 6, 9, 86.87H,81H7.44AAH,44D5H8.DEC CX,JNC,JZ9.JNZ L210.ADC DX,0,CLC11.AAS12.STOSB13.1,3,1,2, 214.(2000H)=39H (2001H)=00H将(2000H),(2001H)两相邻单元中存放的未组合型BCD码压缩成组合型BCD码,并存入(2000H)单元,0 (2001H)15.A)2345H,6780HB)将DX、AX中存放的32位二进制数向左移动4位16.0 ,1009H0对数据段内1000H~1008H单元置数,依次送入1,2,4,8,16,32,64,128,0共九个17.20H,10,T18.①$-BUF②ASSUME CS:CODE,DS:DATA③MOV DS,AXMOV AX,0⑤JLE NEXT⑥JNZ NEXT⑦JNZ LOPA⑧BEGIN19.不相同,第一个数据段72H在前,04在后,后一个04H在前,72H在后。
I B M-P C汇编语言程序设计答案第2版1附录:《IBM—PC汇编语言程序设计》习题参考答案第一章.习题1.1用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(1) 369 (2) 10000 (3) 4095(4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH1.2将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=2551.3将下列十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE(4) 1234答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=46601.4完成下列十六进制数的运算,并转换为十进制数进行校核:(1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4)7AB×6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835(3) ABCD-FEH=AACFH=43727(4) 7AB×6FH=35325H=2178931.5下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。
C语言程序设计(第2版)课后题答案c语言程序设计(第2版)--课后题答案C语言编程能力课程(第二版)课后作业及训练问题参考答案第一章进入C语言程序世界21.ilovechina!printf(\2.6项目培训问题的参考答案1.编写一个c程序,输出以下信息:********************我是学生!********************main(){printf(\printf(\printf(\}2.已知立方体的长度、宽度和高度分别为10cm、20cm和15cm。
编写一个程序来计算立方体的体积。
解决方案:main(){inta,b,c,v;a=10;b=20;c=15;v=a*b*c;printf(\}该程序的运行结果为:v=3000第2章编制c程序的基础知识一选择题cbabacc二操作题21.3,2,-8,23.000000,2.500000,-8.0000002. ABCDEFGHWHI21+35等于523。
34214.AAA项目培训问题1.定义一个符号常量m为5和一个变量n值为2,把它们的乘积输出。
#definem5main(){intn,c;n=2;c=m*n;printf(\2.编程求下面算术表达式的值。
(1) X+a%3*(int)(X+y)%2/4,设X=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。
(1)main(){inta=7;floatx=2.5,y=4.7;printf(\(2)main(){inta=2,b=3;floatx=3.5,y=2.5;printf(\第三章顺序结构程序设计一选择题acdcc二操作题1.x=3,a=2,b=32.z=12.700000二1332bbccabcn三点一二一a212三.编程题编程题1.某工种工资按小时计算,每月工作时数(小时)×小时工资=工资总额,工资总额的10%从公积金中扣除,其余为应付工资。
检测点1.1(第8页)----------------------(1) 13(2) 1024,0,1023(3) 8192,1024(4) 2^30,2^20,2^10(5) 64,1,16,4(6) 1,1,2,2,4(7) 512,256(8) 二进制注意:1.第4题中的符号'^'指求幂运算(如: 2^30指2的30次方)(1)写出每条汇编指令执行后相关寄存器中的值。
第一空:F4A3H第二空:31A3H第三空:3123H第四空:6246H第五空:826CH第六空:6246H第七空:826CH第八空:04D8H第九空:0482H第十空:6C82H第十一空:D882H第十二空:D888H第十三空:D810H第十四空:6246H(2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
解答如下:mov ax,2add ax,axadd ax,axadd ax,ax检测点2.2(第23页)----------------------(1)00010H,1000FH(2)1001H,2000H第2题说明:因为段的起始地址要为16的倍数。
所以当段地址小于1001H或大于2000H时CPU都无法寻到。
检测点2.3(第33页)----------------------答:CPU修改了4次IP的值。
情况如下:第1次:执行完mov ax,bx后第2次:执行完sub ax,ax后第3次:读入jmp ax后第4次:执行完jmp ax后最后IP的值为0实验1 查看CPU和内存,用机器指令和汇编指令编程(第33页)-----------------------------------------------------1.预备知识:Debug的使用<此部分略>2.实验任务(第43页)(1)<此部分略>(2)<此部分略>(3)通过DEBUG中的D命令查看到主板的生产日期[以月、日、年,分隔符为'/'的格式]存储在内存ffff:0005~ffff:000C(共8个字节单元中)处。
P附录:《 IBM—PC汇编语言程序设计》习题参考答案第一章. 习题1.1 用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(1) 369 (2) 10000 (3) 4095 (4) 32767答: (1) 369=1 0111 0001B=171H(2)10000=10 0111 0001 0000B=2710H(3)4095=1111 1111 1111B=FFFH(4)32767=111 1111 1111 1111B=7FFFH1.2 将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111答: (1) 10 1101B=2DH=45(2)1000 0000B=80H=128(3)1111 1111 1111 1111B=FFFFH=65535(4)1111 1111B=FFH=2551.3将下列十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234 答: (1) FAH=1111 1010B=250(2)5BH=101 1011B=91(3)FFFEH=1111 1111 1111 1110B=65534(4)1234H=1 0010 0011 0100B=46601.4完成下列十六进制数的运算,并转换为十进制数进行校核:(1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB × 6F 答: (1) 3A+B7H=F1H=241(2)1234+AFH=12E3H=4835(3)ABCD-FEH=AACFH=43727(4)7AB × 6FH=35325H=2178931.5下列各数均为十进制数,请用8 位二进制补码计算下列各题,并用十六进制数表示其运算结果。
(1)(-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6) -85-(-76)答: (1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H ; CF=0; OF=0(2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H ; CF=1; OF=0(3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H ; CF=0; OF=0(4)85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=10100001B=0A1H; CF=0; OF=1(5)(-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH; CF=0; OF=1(6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+0100 1100B=11110111B=0F7H;CF=0;OF=01.6下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?(1) D8 (2) FF答: (1) D8H 表示的带符号数为-40 , D8H表示的无符号数为216;(2)FFH 表示的带符号数为 -1 , FFH 表示的无符号数为 255。
汇编语言程序设计(第二版)课后习题答案 第二章
1.解答:有256个 2.解答:如下图.第一个络子为000B0H字单元,注意,是字单元,第五个格子为000B3H字单元 E5 1E
3C 2A 3.解答: 30022H字节单元内容: ABH 30024H字节单元内容: EFH 30021H字单元内容: AB34H 30022H字单元内容: CDABH 4.解答: 这三个物理地址都是3017AH,说明了不同的段地址和偏移地址对应同一物理地址 5.解答: CS+IP 第一个字的物理地址为: 0AAA40H 6.解答: 条件标志OF,SF,ZF,CF,的值依次为:0,0,0,0 7.下列操作可使用那些寄存器? (1)加法和减法 AX,BX,CX,DX,当然,还有这几个通用寄存器的高低位了,如AH ,AL等 (2)循环计数 CX (3)乘法和除法 DX,AX,AH,AL (4)保存段地址 CS ,DS,ES,SS (5)表示运算结果为O FLAGS (6)将要执行的指令地址 IP (7) 将要从堆栈取出数据的地址 BP,SP,SS 8.可以用来指示存储器地址的寄存器有: BX,SP,BP,DI,CS,DS,SI,ES,SS,IP 9.一一对应; 5--A 4--B 2--C 3--D 12--E 9--F 11--G 10--H 13--I 8--J 7--K 6---L 1--M 15--N 14--O
第三章 1.(1)立即寻址 没有 (2)直接寻址 7237H (3)使用BX的寄存器寻址 没有 (4)使用BX的间接寻址 637DH (5)使用BX的寄存器相对寻址 0D5B4H (6)基址变址寻址 8E18H (7)相对基址变址 004FH 2.根据下列要求,写出相应的汇编指令。 (1)ADD DX,BX (2) ADD AL,[BX][SI] (3) ADD [BX][0B2H], CX (4) MOV AX,2A59H ADD [0524H] ,AX (5) ADD AL ,0B5H 3.(1)寄存器间接寻址 MOV BX,OFFSET [BLOCK][0AH] MOV DX ,[BX]
(2)寄存器相对寻址 MOV SI,OAH MOV DX,[BLOCK][SI] (3)基址变址寻址 MOV BX ,BLOCK MOV SI,OAH MOV DX,[BX][SI] 4.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后,AX寄存器的内容。 (1)MOV AX,1200H 1200H (2) MOV AX,BX 0100H (3) MOV AX,[1200] 4C2AH 注意,是字单元!! (4)MOV AX,[BX] 3412H 同上 (5)MOV 1100[BX] 4C2AH (6) MOV AX,[BX][SI] 7856H (7) MOV AX,1100[BX][SI] 65B7H 5.(1) 7CD9H (2) 0600H (3)098AH 6. MOV BX,2000H LES DI ,[BX] MOV AX, ES:DI 7.转向地址OBJ的值分别为: (1)064DH (2)0691H (3)05E0H 注意有符号数的符号位 8. (1)MOV AX,0ABH 立即数寻址 无物理地址 (2)MOV AX,BX 寄存器寻址 同上 (3)MOV AX,[100] 直接寻址 20100H (4)MOV AX,VAL 直接寻址 20050H (5) MOV AX,[BX] 寄存器间接寻址 20100H (6) MOV AX,ES:[BX] 直接寻址 21100H (7) MOV AX,[BP] 寄存器间接寻址 20010H (8)MOV AX,[SI] 同上 200A0H (9) MOV AX,[BX+10] 寄存器相对寻址 20110H (10)MOV AX,VAL[BX] 同上 20150H (11) MOV AX,[BX][SI] 基址变址寻址 201A0H (12) MOV AX,VAL[BX][SI] 相对基相变址寻址 201F0H 9.(1)的指令: MOV AX, [BX][0CH] MOV ZREO ,AX (2)的指令: MOV AX,ARRAY[BX] MOV ZREO,AX 10. MOV AX,TABLE 是把符号地址TABLE里的内容送到AX里,指令执行完后,(AX)=1234H LEA AX,TABLE 是把符号地址TABLE 的有效地址(这里是偏移量)送到指定寄存器AX里,指令执行完后,(AX)=0032H 11.执行完指令后,(AX)=1E00H 12. LEA AX,CSTRING MOV DL,AX MOV DH,[AX+6] 13.课本上P51--P53 14. LES BX,[2000] MOV AX,ES:[BX] 一条指令的话为MOV AX,ES:[8000H] 15.运算结果 SF,ZF,CF,OF各位的值(从左至右依次往下) (1)74D4H 0 0 0 0 (2) A5C1H 1 0 0 1 (3) 4240H 0 0 1 0 (4) 0000H 0 1 1 0 16.接上表 (1) 5D14 0 0 0 0 (2) A870 1 0 0 1 (3) D870 1 0 0 0 (4) 34E4 0 0 1 0 17. (1)MOV AX,Z ;把Z送到AX SUB AX,X ;Z-X ADD AX,W ;W+(Z-X) MOV Z,AX ;结果保存在Z中 (2)MOV AX,R ;R送到AX中 ADD AX,9 ;R+9 MOV BX,X ;X送到BX中 ADD BX,6 ;X+6 ADD AX,BX ;(R+9)+(X+6),结果保存在AX中 MOV BX,W ; W送到BX中 SUB BX,AX ; W-(R+9)-(X+6),连续减去两个数,相当于减去这两个数的和 MOV Z,BX ;最终结果送到Z中 (3) MOV AX,W ;把W送到AX IMUL X ;W*X 注意:低十六位保存在AX里,高十六位保存在DX里 MOV BX,Y ;把Y送到BX 里 ADD BX,6 ;Y+6 IDIV BX ;(W*X)/(Y+6) 注意:商保存在AX里,余数保存在DX里 MOV Z,AX ;把商送到Z中, MOV R,DX ;把余数 送到R中 (4) MOV AX,W ;把W送到AX中 SUB AX,X ;W-X CWD ;把AX中的十六位带符号数扩展成为32位,低十六位保存在AX中,高十六位保存在DX中 MOV BX,5 ;把5送到BX中 IDIV BX ;(W-X)/5 被除数为32位,除数为16位 商为16位 IMUL Y ;上一步结果再乖以Y,积为32位 MOV BX,2 ;把2送到BX中 IMUL BX ;上一步乘法所得的积再乘以2,各为64位 MOV Z,EAX ;把结果中低32位放入Z双字单元中 MOV [Z+4],EDX ;把结果中高32位放入Z+4双字单元中 18. 指令 本条指令执行完后AX的内容 执行完后CF,SF,ZF的值 MOV AX,1234H 1234H 0 0 0 MOV CL,4 1234H 0 0 0 ROL AX,CL 2341H 1 0 0 DEC AX 2340H 1 0 0 MOV CX,4 2340H 1 0 0 MUL CX 8918H 0 0 0 INT 20H 程序结束后,(AX)=8918H (DX)=0000H 19. 指令 执行完后AX的内容 执行完后CF ,SF,ZF和OF的值 MOV AX,0 0 0010 DEC AX FFFFH 0100 ADD 7FFEH 0000 ADD AX,2 8000H 0101 NOT AX 7FFFH 0101 SUB AX,0FFFFH 8000H 1101 ADD AX,8000H 0000H 1011 SUB AX,1 FFFFH 1101 AND AX,58D1H 58D1H 0000 SAL AX,1 B1A2H 0101 SAR AX,1 D8D1H 0100 NEG AX 272FH 1000 ROR AX,1 9397H 1001 20. (1)MOV AX,DATAX ADD DATAY,AX (2)MOV AX,DATAX ADD DATAY,AX MOV AX,[DATAX+2] ADD [DATAY+2] ,AX (3)本組指令的作用是:BX <------[DATAX]+[DATAY]+[1](CF的值) 帶進位加法~ (4)MOV AX,DATAX