文档详情

汇编语言程序设计(第二版) 钱晓捷 课后答案.doc

发布:2017-12-14约3.84万字共25页下载文档
文本预览下载声明
汇编语言程序设计(第二版) 钱晓捷 习题答案 第二章(01) 2.1(1)AX=1200h (2)AX=0100h (3)AX=4C2Ah (4)AX=3412h (5)AX=4C2Ah (6)AX=7856h (7)AX=65B7h.2 (1)????两操作数类型不匹配 (2)????IP指令指针禁止用户访问 (3)????立即数不允许传给段寄存器 (4)????段寄存器之间不允许传送 (5)????两操作数类型不匹配 (6)????目的操作数应为[ BP ] (7)????源操作数应为 [BX+DI]??? (8)????立即数不能作目的操作数 2.3 lea bx,table?????;获取table的首地址,BX=200H mov al,8?????????;传送欲转换的数字,AL=8 xlat????????????? ;转换为格雷码,AL=12H 2.4 mov ax,8057h push ax mov ax,0f79h push ax pop bx???????????? ;bx=0f79h pop [bx]????????? ;DS:[0f79h]=8057h 2.6 AL=89h?????? CF?????? ZF?????? SF?????? OF?????? PF AL=12h??????? 1??????? 0??????? 0??????? 1??????? 1 AL=0afh?????? 0??????? 0??????? 1??????? 0??????? 1 AL=0afh?????? 1??????? 0??????? 1??????? 0??????? 1 AL=00h??????? 0??????? 1??????? 0??????? 0??????? 1 AL=0ffh?????? 0??????? 0??????? 1??????? 0??????? 1 AL=00h??????? 0??????? 1??????? 0??????? 0??????? 1?????? 2.5 堆栈是一种按“先进后出”原则存取数据的存储区域。 堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。?2.7 W=X+Y+24-Z 2.8 (1)ADD DX,BX (2)ADD AL,[BX+SI] (3)ADD [BX+0B2H],CX (4)ADD WORD PTR [0520H],3412H (5)ADD AL,0A0H2.9;为了避免与操作数地址混淆,将题中X,Y,Z,V 字操作数改为A,B,C,D ?????? mov ax,X???????;ax=A??? ?????? imul Y?????????;dx,ax = A*B????? (将操作数看作符号数,以下同) ?????? mov cx,ax??? ?????? mov bx,dx??????;bx,ax????? --????? dx,ax =A*B?? ?????? mov ax,Z???????;ax = C?? ?????? cwd????????????;dx,ax =C???(扩展符号后为双字) ?????? add cx,ax?? ?????? adc bx,dx??????;bx,cx -- bx,cx+dx,ax=A*B+C ?????? sub cx,540?? ?????? sbb bx,0???????;bx,cx-- A*B+C-540??? ?????? mov ax, V??????;ax= D?? ?????? cwd????????????;dx,ax= D???(扩展符号后为双字)?? ?????? sub ax, cx?? ?????? sbb dx, bx?????;dx,ax = dx,ax - bx,cx = D-(A*B+C-540) ?????? idiv X ;运算结果:[D-(A*B+C-540h)]/A ;ax存商,dx存余数 2.10;(1)xchg的操作数不能是立即数 (2不能对CS直接赋值 (3)两个操作数不能都是存储单元 (4)堆栈的操作数不能是字节量 (5)adc的操作数不能是段寄存器 (6)没有确定是字节还是字操作 (7)in不支持超过FFH的直接寻址 (8)out只能以AL/AX为源操作数 ???第二章(02) ?? 2.11; 指令 AX的值 CF OF SF ZF PF Mov???? ax,1407h 1470h - - - - - And???? ax,ax 1470h 0 0 0 0 0 Or????? ax,ax 1470h 0 0
显示全部
相似文档