(10)HLT (11)ADD SI,[BX] (12)MOV [BX+100],DI 2.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H (21203)=65H,试说明下列各条指令执行完后AX寄存器的内容:
(1)MOV AX,1200H (2)MOV AX,BX (3)MOV AX,[1200H]
(4)MOV AX,[BX] (5)MOV AX,1100H[BX]
(6)MOV AX,[BX][SI] (7)MOV AX,1100H[BX][SI]
3.指出下列传送类指令中,哪些是非法指令
(1) M OV DS,0100H (2)MOV BP,AL (3)MOV BX,AL
(4)XCHG AH,AL (5)OUT 21H,AL (6)OUT 310H,AL
(7)MOV [BP+DI],AX (8)MOV [BX+CX],2130H
(9)AND AX,BL (10)ADD AL,[BX+DX+10H]
(11)MOVCS:[2000H],AX (12) POP CS
4.设有二个字节长的BCD码数据BCD1和BCD2,BCD1数以1000H为首址在内存中顺序存放;BCD2数以2000H为首址在内存中存放,要求相加后结果顺序存放在以2000H为首址的内存区中。
5.试写出完成下列二进制运算的程序段(设X,Y,Z,W,R都定义为字变量):(1)Z←Y+X-W (2)Z←W-(X+6)-(Y+100)
(2) Z←(W-X)/(Y+100)的商,R←余数
6.编写一段程序,实现下述要求:(1)使AX寄存器的低4位清零,其余位不变;(2)使AL寄存器的低4位保持不变,高4位取反。
7.试编写出将内存中从0404H单元开始的256个字节单元清零的程序。
8.设内存从0500H单元开始存放了8个字节,要求对每个字节内容进行同一种字符处理,处理完后又顺序送回以0500H为首址的8个单元中,设字节字符处理可调用子程序SUROUT1。
习题三(第3章)
1.设下列指令中的标识符均为字变量,请指出哪些8086/8088指令是非法的:(1)MOV AX,WORD1[DX] (2)MOV WORD1,WORD2
(3)MOV SWORD,DS (4)MOV SP,DWORD[BX][SI]
(5)MOV [BX][SI],CX (6)MOV AX,WORD1+WORD2
(7)MOV AX,WORD2+0FH (8)MOV BX,OFFSET WORD1
(9)MOV SI,OFFSET WORD2[BX]
2.若WORD1及WORD2均为字变量,ADDITION为标号,请说明下列指令的错误之处:(1)JMP ADDITION[DI] (2)JNZ WORD2 (3)JMP FAR ADDITION 3.试设计一个数据段DSEG,定义下列字符变量或数据变量:
(1) FIRST为十六进制数字变量4020H;(2)SECOND为二进制字节变量01011100B;
(3)THIRD为十进制数字节变量64;(4)STRING为字符串变量‘ADDITION PROCEDURE’;(5)ASCDATA为ASCII数字变量‘46782’;(6)TABL为10个字的数组变量;(7)REPDATA为数字0,2,3,0,6重复5次的字节变量;(8)RESULT 为10个为0的字变量。
4.设有3个字变量的变量名及内容如下: V AR1 3C46H, V AR2 F678H,V AR3 0059H,试设计一个数据段定义这三个变量及其地址(包括段地址和偏移地址)表变量ADDRTBL。