汇编语言程序设计(第二版) 钱晓捷 习题答案第二章(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、2(1) 两操作数类型不匹配 (2) I P 指令指针禁止用户访问 (ﻫ3) 立即数不允许传给段寄存器 ﻫ)4) 段寄存器之间不允许传送 ﻫ(5( 两操作数类型不匹配 )6( 目得操作数应为[ BP ] (7) 源操作数应为 [BX+D I] ﻫ(8( 立即数不能作目得操作数2、3lea bx,ta b le ;猎取 tabl e得首地址,B X=200H m o v al,8 ;传送欲转换得数字,AL=8 ﻫxlat ;转换为格雷码,A L=1 2 H 2、4堆栈就是一种按“先进后出”原则存取数据得存储区域。 ﻫ堆栈得两种基本操作就是压栈与出栈,对应得指令就是 PUSH 与 PO P。2、5mo v a x,805 7h ﻫpush a x ﻫm ov ax,0 f7 9 h ﻫpush a x ﻫp op b x ;bx=0f7 9 h p op [bx] ;DS:[0f79h]=8 0 57h 2、6AL=89h CF ZF S F OF PF ﻫA L=12h 1 0 0 1 1 ﻫA L=0 a f h 0 0 1 0 1 AL=0 afh 1 0 1 0 1 ﻫAL=00h 0 1 0 0 1 AL=0 ff h 0 0 1 0 1 A L=00h 0 1 0 0 1 2、7 W=X+Y+24-Z2、8(1)ADD DX,B X ﻫ)2)AD D AL,[BX+SI] ﻫ)3(ADD [BX+0B 2 H],CX (4)A DD W OR D PTR [0520 H],3412H ﻫ)5)A DD AL,0A0H 2、9;为了避开与操作数地址混淆,将题中 X,Y,Z,V 字操作数改为 A,B,C,D ﻫ m o v ax,X ;a x=A ﻫ im u l Y ;dx,a x = A*B (将操作数瞧作符号数,以下同) ﻫ mo v cx,ax m o v b x,d x ;bx,a x <-- dx,ax =A*B ﻫ mo v ax,Z ;ax = C ﻫ cwd ;dx,a x =C (扩展符号后为双字) ﻫ a dd cx,a x ﻫ ad c bx,dx ;bx,cx <-- b x,cx+dx,ax=A*B+C s ub cx,54 0 ﻫ sbb bx,0 ;b x,cx〈-- A*B+C—5 40 mov ax, V ;a x= D ﻫ cwd ;d x,ax= D (扩展符号后为双字) sub ax, c x ﻫ s b b dx, b x ;d x,a x = d x,a x - bx,cx = D-(A*B+C-5 40( ﻫ i div X ;运算结果:[D-)A*B+C-540h)]/A ;ax 存商,d...