INT 20H
试问:(1)每条指令执行后,AX寄存器的内容是什么?(2)每条指令执行后,CF,
SF及ZF的值分别是什么?(3)程序运行结束时,AX及DX寄存器的值为多少? 10.设一个字节数据X存放AL寄存器中,试说明下列程序的功能:
XOR AH,AH ;AH清零
SAL AX,1 ;AX左移一位,相当于2X MOV BX,AX ;2X送BX暂存 MOV CL,2
SAL AX,CL ;AX左移二位,2X×4=8X ADD AX,BX ;2X+8X=10X
B 类:
1..分析下列程序段:
ADD AX,BX JNO L1 JNC L2
SUB AX,BX JNC L3 JNO L4
JMP SHORT L5
如果AX和BX的内容(带符号数)给定如下:
AX BX
(1)B568H 54B7H (2)147BH 80DCH (3)D023H 9FD0H (4)42C8H 608DH (5)B568H 94B7H
问该程序执行完后,程序转向哪里? 答:
2.内存单元初始化内容为:(2000H:2A00H)--(2000H:2A02H)分别为0FH、0EH、0DH,(2000H:2A10H)--(2000H:2A12H)分别为09H、08、07H。执行下列程序后,请填写存储单元的内容:
MOV AX,2000H MOV DS,AX MOV ES,AX MOV SI,2A10H MOV DI,2A00H CLD
MOV CX,3 L:MOV AL,[DI] MOVSB DEC SI
MOV [SI],AL INC SI
LOOP L HLT
(1)2000H:2A00H= 。 (2)2000H:2A11H= 。 (3)2000H:2A12H= 。
3.下面程序是将10个8位无符号数按递减次序排序,请将程序填写完整。
DATA SEGMENT
ARRAY DB 05H,78H,FFH,7BH,00H DB 8CH,20H,A0H,F0H,60H DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA MAIN PROC FAR START:PUSH DS
XOR AX,AX PUSH AX
MOV AX,DATA MOV DS,AX
AB1: MOV SI,OFFSET ARRAY MOV BL,0 MOV CX,10
AGAIN:MOV AL,[SI] INC SI
CMP AL,[SI] CD1 MOV AH,[SI] MOV [SI],AL DEC SI
MOV [SI],AH INC SI
MOV BX,1 CD1:LOOP AGAIN DEC BL
AB1 RET MAIN ENDP CODE ENDS
END START
4.从BUF开始的11个单元中存放着11个整数,找出这11个数中正数并且是偶数的个数存入R中。 DATA SEGMENT BUF DB –2,5,-3,6,100,0,-20,-9,8,-110,21 N= ① R DW ?
DATA ENDS CODE SEGMENT ② BEGIN:MOV AX,DATA ③ LEA BX,BUF MOV CX,N ④ LOPA: CMP [BX],BYTE PTR 0 ⑤ TEST [BX],BYTE PTR 1 ⑥ INC AX NEXT : INC BX DEC CX
⑦ MOV R,AX
MOV AH,4CH INT 21H CODE ENDS END ⑧
解:
C 类:
1.有一程序如下: MOV CX,0005 MOV DI,3000H
NEXT: MOV BL,0FFH MOV AL,BYTE PTR[DI] CMP AL,3AH JNB NEXT1 SUB AL,30H JB NEXT1 MOV BL,AL
NEXT1:MOV AL,BL MOV BYTE PTR[DI+0AH],AL INC DI LOOP NEXT HLT
已知数据段3000H单元开始内容为40H,30H,35H,59H,12H,放置的是字符的ASCII码
问:(1)程序执行完毕结果放置在何处? (2)内容是什么?
(3)用何DEBUG命令检查结果?
2.下面是多字节加法程序,第一个数是8A0BH,第二个数是D705H。请填写出正确结果。 DATA SEGMENT
FIRST DB , ,0H SECOND DB , DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX
MOV CX, MOV SI,0
NEXT: MOV AL,SECOND[SI] ADC FIRST[SI],AL INC SI LOOP NEXT MOV AL,0
ADC AL, MOV FIRST[SI],AL MOV AH,4CH INT 21H CODE ENDS END START
3. CLC
MOV AX,248BH MOV CL,3 RCL AX,CL
执行以上程序序列后, AX=____________________。 4.设TABLE DW 3467H,7367H,0A566H,665DH,767FH ENTRY DW 3
若执行下列指令:MOV BX,OFFSET TABLE ADD BX,ENTRY MOV AX,[BX]
结果,AX=___________(用十六进制表示) 5.
(A) (B)
MOV CX,77H MOV CX,77H MOV BX,88H MOV BX,88H NEXT: MOV AX,4500H NEXT: MOV AX,4500H DEC BX DEC BX
LOOP NEXT LOOPNZ NEXT 问程序段A,B执行中各循环多少次?
程序段 A循环_______________次,程序段B循环___________次。