内容发布更新时间 : 2025/1/1 20:35:42星期一 下面是文章的全部内容请认真阅读。
CMP AL, ‘a’ JB ERR
CMP AL,‘z’ JA ERR
SUB AL, 20H MOV DL, AL MOV AH, 2 INT 21H JMP NEXT
ERR: LES DX, ERROR MOV AH, 9 INT 21H JMP NEXT EXIT: MOV AH, 4CH INT 21H CODE ENDS
END START
26.下面子程序完成把BX寄存器内的二进制数用十六进制数的形式在屏幕上显示出来。 BINTOHEX PROC NEAR PUSH CX PUSH AX 备选答案: PUSH DX ① JL PRINTIT MOV CH, 4 ② AND AL, OFH ROTATE: MOV CL, 4 ③ DEC CH ROL BX, CL MOV AL, BL 2 ADD AL, 30H CMP AL, 3AH 1 ADD AL, 7H PRINTIT: MOV DL, AL MOV AH, 2 INT 21H 3 JNZ ROTATE POP DX POP AX POP CX RET
BINTOHEX ENDP 备选答案:
① JL PRINTIT
- 6 -
② AND AL, OFH ③ DEC CH
27.下面程序段是判断寄存器BL中第3位、第5位是否同时为1,如同时为1,则AH
置0,否则AH置全l。 MOV DL, BL
备选答案: NOT DL
① JMP NEXT 2
② TEST DL, 28H JZ ZERO
MOV AH, 0FFH 1 ZERO: MOV AH, 0
NEXT: 备选答案: ① JMP NEXT ② TEST DL, 28H
三、判断题 (在正确的叙述或指令前打?,错误的题前打?)(共20题) ( X ) 1. PUSH 5588H ( X ) 2. MOV DS, 1720H ( X ) 3. ADD AX, CL ( X ) 4. AND AX,[DX] ( X ) 5. MOV CS, 0600H ( X ) 6. PUSH 074CH ( X ) 7. ADD AX, CL ( X ) 8. OR BX,[CX] ( V ) 9 IMUL DX
( X ) 10. XOR AL, BX ( X ) 11. MOV [DX], BX
( X ) 12. SUB EAX, [ECX*10+100] ( X ) 13. MOV DS, 1200H ( X ) 14. XCHG 256, [100H] ( V ) 15. OUT DX, AX
( X ) 16. LEA VAR, [BP+SI] ( X ) 17. NEG 88
( V ) 18. INC WORD PTR [100H] ( V ) 19 IMUL DX ( X ) 20. XOR AL, BX 四、简答题(共4题) 1.标志寄存器:
标志寄存器:是8086/088中唯一按位操作的寄存器,该寄存器为16位,有效的标志位共9位。其中,CF,PF,AF,ZF,SF,OF为状态标志,用于反映最近一次影响标志位的算术或逻辑运算中运算过程、运算结果的一些性质;TF,IF,DF为控制标志,用于控制CPU对某些特定事件的处理方式以及CPU的工作模式。 2.逻辑地址:
- 7 -
逻辑地址:由两个16位的地址分量构成,其中一个为段基值,另一个为偏移量,两个分量均为无符号数编码。物理地址=段基值×16+偏移量.
3. 下列程序段执行完后,SF、ZF、CF、OF的内容是什么? MOV BX, 4321H ADD BX, 1234H
SF=0 ZF=0 CF=0 OF=0
4. 下列ASCⅡ码串(包括空格串)依次存储在起始地址为CSTRING的字节单元中: CSTRING DB ‘PERSONAL COMPUTER’
请编写指令将字符串中的第1个和第7个字符传给DX寄存器。 MOV DX, CSTRING MOV DX, CSTRING+6
五、程序分析题(分析程序段总的功能或回答相关问题或运行结果)(共14题)。 1. 阅读如下程序片段 MOV AL,4CH MOV BL,0B5H ADD AL,BL
执行上述程序片段后,(AL)= 01H ,(BL)= 0B5H ,CF= 1 ,OF= 0 2. 阅读如下程序片段 MOV AL,0F3H MOV DL,0C4H ADD AL,DL AND AL,0FH
执行上述程序片段后,(AL)= 7H , CF= 0 ,OF= 0 ,PF= 0 3. 阅读如下程序片段 MOV AL,7EH MOV CL,04H ROL AL,CL
执行上述程序片段后,(AL)= 0F9H ,(CL)= 04H ,CF= 1 ,OF= 无意义 4. 阅读如下程序片段 MOV AX,0632H MOV BX,0C202H SUB AX,BX INC AX
执行上述程序片段后,(AX)= 4421H ,(CF)= 1 ,OF= 0 ,PF= 0 5. 阅读如下程序片段,假设(DS)=0100H,字节单元(01024H)=56H,字节单元(01025H)
=28H
MOV BX,0024H LEA BX,[BX] OR BX,0 ADC BX,[BX]
执行上述程序片段后,(BX)= 287AH ,(CF)= 0 ,OF= 0 ,PF= 0 6. 阅读如下程序片段,假设(SP)=0064H MOV AX,0001H MOV BX,0002H
- 8 -
PUSH AX PUSH BX POP AX POP BX
执行上述程序片段后,(AX)= 0002H ,(BX)= 0001H ,(SP)= 0064H 。(CF)= 0 7. DATA SEGMENT
TAB DW 1,2,3,4,5 ENTRY DW 2
DATA ENDS
…MOV BX, OFFSET TAB ADD BX, ENTRY MOV AX, [BX] MOV CX, TYPE TAB MOV DX, SIZE TAB
执行上述指令后,(AX)= 3 ,(CX)= 2 ,(DX)= 2 。
8.MOV AX, W IMUL X MOV BX, Y ADD BX, 6 IDIV BX
MOV Z, AX MOV R,DX
上述程序段中X,Y,Z,R,W均为有符号数的字变量,试说明上述程序段完成什么功能。 求数值表达式的值:(W*X)/(Y+6)?Z,余数?R 9.
MOV AX, 1234H MOV CL, 8
ROL AX, CL;这条指令执行后,(AX)= 3412H DEC AX ;这条指令执行后,CF 不变 MOV CX, 4
MUL CX ;这条指令执行后,SF= 1
10. CMP DX, BX
JG X JL Y
CMP AX, CX JA X X: …
Y: …有两个双精度数?、?分别存储于DX、AX及BX、CX中,上述程序段完成的功能是什么?
- 9 -
完成的功能是:如果?.>?,则转向X执行,否则转向Y执行。 11.设有宏定义如下:
TRANS MACRO BUF1, BUF2
MOV AX, BUF1 MOV BX, BUF2 MOV BUF1, BX MOV BUF2, AX ENDM
请说明宏指令完成的功能是什么?并将宏调用TRANS WORD_VAR1, WORD_VAR2进行宏扩展。
宏定义完成的功能是:将两个存储单元BUF1和BUF2的内容互换。 宏调用TRANS WORD_VAR1, WORD_VAR2的宏扩展是
MOV AX, WORD_VAR 1 MOV BX, WORD_VAR 2 MOV WORD_VAR 1, BX MOV WORD_VAR 2, AX
12.分析下面程序段,回答指定问题: XOR AL, AL CALL SUBROUT MOV BL, AL CALL SUBROUT RCR AL, 1
…
SUBROUT PROC NEAR NOT AL JS NEXT STC
NEXT:RET SUBROUT ENDP
上述程序执行后,(AL)= 80H ,(BL)= 0FFH 。
13. 试回答下面程序段执行后完成什么功能? OLDS DB ‘COMPUTER’ N EQU $-OLDS
NEWS DB ‘COMPUTOR’
…LEA SI, OLDS
LEA DI, NEWS MOV CX, N CLD
REPE CMPSB
JNZ NEW_ADDRESS OLD_ADDRESS:
…
- 10 -