第 3 章 8086CPU 指令系统1.写出完成下列要求的变量定义语句:(1)在变量 var1 中保存 6 个字变量: 4512H,4512,- 1,100/3 ,10H,65530;(2)在变量 var2 中保存字符串:’BYTE’, ’word’, ’WORD’;(3)在缓冲区buf1 中留出 100 个字节的存储空间;(4)在缓冲区 buf2 中,保存 5 个字节的 55H,再保存 10 个字节的 240,并将这一过程重复 7 次;(5)在变量 var3 中保存缓冲区buf1 的长度;(6)在变量 pointer中保存变量var1 和缓冲区 buf1 的偏移地址。解: var1 DW 4512H,4512,-1,100/3,10H,65530 var2 DB ’BYTE ’,’word ’,’WORD ’buf1 DB 100 DUP(?)buf2 DB 7 DUP(5 DUP(55H ),10 DUP ( 240))var3 DB LENGTH buf1 pointer DW var1,buf1 (或者 pointer DW OFFSET var1,OFFSET buf1)2.设变量 var1 的逻辑地址为0100: 0000,画出下列语句定义的变量的存储分配图: var1 DB 12,- 12,20/6 ,4 DUP(0,55H) var2 DB ‘Assemble’ var3 DW ‘AB’, ‘cd’ , ‘E’ var4 DW var2 var5 DD var2 解:3.指令正误判断, 对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设VAR1, VAR2 为字变量 , L1为标号):(1)MOV SI, 100 ( 2)MOV BX,VAR1[SI] (3)MOV AX, [BX] ( 4)MOV AL, [DX] (5)MOV BP, AL ( 6)MOV VAR1, VAR2 (7)MOV CS, AX ( 8)MOV DS, 0100H (9)MOV [BX][SI], 1 ( 10)MOV AX, VAR1+VAR2 (11)ADD AX, LENGTH VAR1 ( 12)OR BL, TYPE VAR2 (13)SUB [DI], 78H ( 14)MOVS VAR1, VAR2 (15)PUSH 100H ( 16)POP CS (17)XCHG AX, ES ( 18)MOV DS, CS (19)JMP L1+5 ( 20)DIV AX, 10 (21)SHL BL, 2 ( 22)MOV AL, 15+23 (23)MUL CX ( 24)XCHG CL, [SI] (25)ADC CS:[0100], AH ( 26)SBB VAR1- 5,154 解:(1)MOV SI,100 正确。源:立即数寻址,目的:寄存器寻址(2)MOV BX,V AR1[SI] 正确。源:寄存器相对寻址,目的:寄存器寻址(3)MOV AX,[BX] 正确。源:寄存器间接寻址,目的:寄存器寻址(4)MOV AL,[DX] 错误。寄存器间接寻址时,DX, AX, CX不能作地址寄存器(5)MOV BP,AL 错误。操作数类型不一致(6)MOV V AR1,V AR2 错...