- 1 - 第 2 章 8086 的指令系统〔习题 2.1〕已知 DS=2000H 、BX = 0100H 、SI= 0002H ,存储单元 [20100H] ~ [20103H] 依次存放 12 34 56 78H , [21200H] ~ [21203H] 依次存放 2A 4C B7 65H ,说明下列每条指令执行完后AX 寄存器的内容。(1) mov ax,1200h (2) mov ax,bx (3) mov ax,[1200h] (4) mov ax,[bx] (5) mov ax,[bx+1100h] (6) mov ax,[bx+si] (7) mov ax,[bx][si+1100h] 〔解答〕(1)AX =1200H (2)AX =0100H (3)AX =4C2AH ;偏移地址 =bx=0100h (4)AX =3412H ;偏移地址 =bx=0100h (5)AX =4C2AH ;偏移地址 =bx+1100h=1200h (6)AX =7856H ;偏移地址 =bx+si=0100h+0002h=0102h (7)AX =65B7H ;偏移地址 =bx+si+1100h=0100h+0002h+1100h=1202h 〔习题 2.2〕指出下列指令的错误(1) mov cx,dl (2) mov ip,ax (3) mov es,1234h (4) mov es,ds (5) mov al,300 (6) mov [sp],ax (7) mov ax,bx+di (8) mov 20h,ah 〔解答〕- 2 - (1)两操作数类型不匹配(2)IP 指令指针禁止用户访问(3)立即数不允许传给段寄存器(4)段寄存器之间不允许传送(5)两操作数类型不匹配(6)目的操作数应为[ SI ] (7)源操作数应为[BX+DI] (8)立即数不能作目的操作数〔习题 2.3〕已知数字 0 ~ 9 对应的格雷码依次为:18H、34H、05H 、06H、09H、0AH、0CH、11H 、12H 、14H ,它存在于以table 为首地址(设为200H )的连续区域中。请为如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。lea bx,table mov al,8 xlat 〔解答〕lea bx,table ;获取 table 的首地址, BX= 200H mov al,8 ;传送欲转换的数字,AL = 8 xlat ;转换为格雷码,AL = 12H P35 〔习题 2.4〕什么是堆栈,它的工作原则是什么,它的基本操作有哪两个,对应哪两种指令?〔解答〕堆栈是一种按 “先进后出 ”原则存取数据的存储区域,位于堆栈段中,使用SS 段寄存器记录其段地址;它的工作原则是先进后出;堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH 和 POP 。〔习题 2.5〕已知 SS = 2200H、SP = 00B0H ,画图说明执行下面指令序列时,堆栈区和SP 的内容如何变化?mov ax,8057h push ax mov ax,0f79h push ax pop bx pop [bx] - 3...