编辑: kieth | 2016-04-09 |
0 0
1 1
0 1 (NZ) (PL) (CY) (OV) (NA) (PE) 讨论结果: 对于无符号数而言,因为CF=1,所以结果不正确. 对于带符号数而言,因为OF=1,所以结果不正确. 17.编程序使: ⑴ 使AL的各位变反. ⑵ BX寄存器低四位置1. ⑶ AX寄存器的低四位清0. ⑷ 使CX寄存器的低四位变反. ⑸ 用TEST指令测试AL寄存器的位0和位6是否同时为0,若是则把0送DH寄存器,否则把1送DH寄存器. 答案: ⑴ NOT AL ⑵ OR BX,000FH ⑶ AND AX,0FFF0H ⑷ XOR CX,000FH ⑸ TEST AL,01000001B JZ A MOV DH,1 JMP SHORT B A: MOV DH,0 B: … 18.设X=X7X6X5X4X3X2X1X0,Y=Y7Y6Y5Y4Y3Y2Y1Y0,Z=Y7Y6Y5X4X3X2X1X0,其中X、Y、Z均为二进制数,试编写已知X和Y求Z的程序. 答案: MOV AL,X AND AL,00011111B MOV BL,Y AND BL,11100000B OR AL,BL MOV Z,AL 19.使用指令REP MOVSB指令时,请问: ⑴ 指令完成什么功能? ⑵ 要求哪些初始条件? 答案: ⑴ 指令完成传送字符串功能. ⑵ 要求设置以下初始条件:CX、DF、SI、DI、DS、ES 20.在执行字符串指令时,何时需要DF标志置1?何时需要清0? 答案: 地址指针减量时使DF=1,增量时使DF=0. 25.假定AX和BX中是有符号数据,CX和DX中是无符号数据,请为下列各项确定CMP和条件转移指令: ⑴ CX值超过DX转移. ⑵ AX值未超过BX转移. ⑶ DX值为0转移. ⑷ CX值等于小于DX转移. 答案: ⑴ CMP CX,DX JA L1 ;
也可以用JNBE L1指令 … L1: … ⑵ CMP AX,BX JNG L1 ;
也可以用JLE L1指令 … L1: … ⑶ CMP DX,0 JZ L1 … L1: … ⑷ CMP CX,DX JBE L1 ;
也可以用JNA L1指令 … L1: … 26.试分析下面的程序段完成什么功能? MOV CL,4 SHL DX,CL MOV BL,AH SHL AL,CL SHR BL,CL OR DL,BL 答案:把DX和AX一对寄存器所形成的32位内容左移四位.其中DX中为高16位,AX中为低16位.
第四章习题答案 2.一个.EXE文件至少应该包括代码段. 3.一个.EXE文件的主过程必须是FAR型. 4.可执行程序的END后必须是主过程名. 10.各语句为变量分配的字节数为: ⑴
1 ⑵
1 ⑶
3 ⑷
82 ⑸
6 ⑹
8 ⑺
4 ⑻
2 ⑼
2 11. 变量名 偏移量 变量名 偏移量 变量名 偏移量 N1
0 N2
1 N3
2 N4
5 N5
87 N6
93 N7
101 N8
105 N9
107 N7变量的内容是00000002;
N8变量的内容是0005;
N9变量的内容是0007. ⑴ N1=15 ⑵ AL=123 ⑶ 错,两个操作数不能同时为存储器操作数. ⑷ AL=33H ⑸ DX=7 ⑹ N5=000EH ⑺ 错,类型不匹配. ⑻ 错,类型不匹配.错,NUM1是一个常数. ⑽ 错,由EQU定义的符号在同一个程序中不能再定义. 18.L1的值为6,L2的值为3.