资源描述:
《汇编语言程序设计(钱晓捷)课后答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、汇编语言程序设计(第二版) 钱晓捷 习题答案第二章(01)2.1(1)AX=1200h(2)AX=0100h(3)AX=4C2Ah(4)AX=3412h(5)AX=4C2Ah(6)AX=7856h(7)AX=65B7h2.2(1) 两操作数类型不匹配(2) IP指令指针禁止用户访问(3) 立即数不允许传给段寄存器(4) 段寄存器之间不允许传送(5) 两操作数类型不匹配(6) 目的操作数应为[BP](7) 源操作数应为[BX+DI] (8) 立即数不能作目
2、的操作数2.3leabx,table ;获取table的首地址,BX=200Hmoval,8 ;传送欲转换的数字,AL=8xlat ;转换为格雷码,AL=12H2.4堆栈是一种按“先进后出”原则存取数据的存储区域。堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。2.5movax,8057hpushaxmovax,0f79hpushaxpopbx ;bx=0f79hpop[bx] ;DS:[0f79h]=8057h
3、2.6AL=89h CF ZF SF OF PFAL=12h 1 0 0 1 1AL=0afh 0 0 1 0 1AL=0afh 1 0 1 0 1AL=00h 0 1 0 0 1AL=0ffh 0 0
4、 1 0 1AL=00h 0 1 0 0 1 2.7W=X+Y+24-Z2.8(1)ADDDX,BX(2)ADDAL,[BX+SI](3)ADD[BX+0B2H],CX(4)ADDWORDPTR[0520H],3412H(5)ADDAL,0A0H2.9;为了避免与操作数地址混淆,将题中X,Y,Z,V字操作数改为A,B,C,D movax,X ;ax=A imulY
5、 ;dx,ax=A*B (将操作数看作符号数,以下同) movcx,ax movbx,dx ;bx,ax <-- dx,ax=A*B movax,Z ;ax=C cwd ;dx,ax=C (扩展符号后为双字) addcx,ax adcbx,dx ;bx,cx<--bx,cx+dx,ax=A*B+C subcx,540 sbb
6、bx,0 ;bx,cx<--A*B+C-540 movax,V ;ax=D cwd ;dx,ax=D (扩展符号后为双字) subax,cx sbbdx,bx ;dx,ax=dx,ax-bx,cx=D-(A*B+C-540) idivX;运算结果:[D-(A*B+C-540h)]/A;ax存商,dx存余数2.10;(1)xchg的操作数不能是立即数(2不能对CS直接赋值(3)两个操作数不能
7、都是存储单元(4)堆栈的操作数不能是字节量(5)adc的操作数不能是段寄存器(6)没有确定是字节还是字操作(7)in不支持超过FFH的直接寻址(8)out只能以AL/AX为源操作数 第二章(02) 2.11;指令AX的值CFOFSFZFPFMov ax,1407h1470h-----And ax,ax1470h00000Or ax,ax1470h00000Xor ax,ax000011Not ax0ffffh-----Test ax,0f0f0h0ffffh0010
8、1注意:1.mov,not指令不影响标志位 2.其他逻辑指令使CF=OF=0,根据结果影响其他标志位。 第2章(03)2.12;指令 注释 执行结果 CFOFSFZFPFmo