内容发布更新时间 : 2024/12/28 20:11:28星期一 下面是文章的全部内容请认真阅读。
C、CX≠0,且ZF=0 D、CX≠0,或ZF=1
答案:B
7.已知RET指令是属性为NEAR子程序中的返回指令,执行RET之前SP=100H,执行后SP的内容为 。
A.100H 答:B
B.102H
C.98H
D.0FEH
8. 伪指令用来指定宏局部标号。
A.PUBLIC B.LOCAL C.EXTRN D.ASSUME
答:B
二、阅读下列程序,并回答问题(每题10分,共30分) 1. 有下列程序段:
BUF DB 0CH
MOV AL,BUF
CALL FAR PTR HECA
.
.
PROC FAR CMP AL,10
Kl
AL,7 AL,30H
HECA
JC ADD K1: ADD
MOV DL,AL MOV AH,2 INT
21H
RET HECA ENDP
问:程序执行后,DL=?屏幕上显示输出的字符是什么? 答:DL=43H,屏幕上显示输出的字符是‘C’。
2、阅读下列程序
MOV AL,38H MOV BL,49H CALL SUBO INC AL DEC CL ┇ SUBO PROC ADD AL,BL MOV CL,AL DAA RET
SUBO ENDP
上述程序段运行后,(AL)=_________,(CL)=_________
6
答案:(AL)=88H (CL)=80H
3、设程序中的MM为一带符号数,阅读下列程序并回答下列问题 程序: DATA SEGMENT BUF1 DB MM BUF2 DB ?
DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START PROC
MOV AX,DATA MOV DS,AX
MOV BX,OFFSET BUF1 MOV DI,OFFSET BUF2 MOV AH,[ BX ] OR AH,AH JZ ZERO JL MINUS MOV AH,01H JMP ASSIGN ZERO:MOV AH,00H JMP ASSIGN MINUS: MOV AH,0FFH ASSIGN:MOV [ DI ],AH
INT 20H ;返回DOS
START ENDP CODE ENDS END START
问题:A:该程序完成的操作是(1);
B:当MM为80H时,程序执行后BUF2单元的内容为(2);
C:若程序中指令JL MINUS改为JNL MINUS且MM为00H时,则程序执行后BUF2单
元的内容为(3)
答案:(1)判定MM的正负。
当MM=0时BUF2置为0; 当MM>0时BUF2置为1
当MM<0时BUF2置为-1 (2)-1 (3)0
三、根据题意完善程序(每空3分,共27分)
下面的程序把缓冲区NUM中的十六进制值转换为4个ASCII码,依次放入缓冲区STRING中,并显示输出,请根据题意,完善该程序。
7
DATA SEGMENT NUM DW 45AFH
STRING DB 4 DUP(?),‘$’ DATA ENDS
STACK SEGMENT PARA STACK ‘STACK’ DB 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME (1) BEGIN:MOV AX,DATA MOV DS,AX LEA BX,STRING CALL BINHEX LEA (2),STRING MOV AH,9 INT 21H MOV AH,(3) INT 21H BINHEX PROC
MOV AX,NUM MOV DI,BX ADD DI,3 MOV DX,AX MOV CX,4 AGAIN: AND AX,0FH CMP AL,0AH (4)
ADD AL,‘a’―‘0’―0ah ADDZ:ADD AL,‘0’ MOV [ DI ],AL DEC (5) PUSH CX MOV CL,4 SHR DX,CL MOV AX,DX POP (6)
LOOP AGAIN
(7) BINHEX (8) CODE ENDS END (9) 8
答案:
(1)CS:CODE,DS:DATA,SS:STACK (2)DX (3)4CH
(4)JL ADDZ / JB / JNAE / JC / JL / JNGE (5)DI (6)CX (7)RET (8)ENDP (9)BEGIN
四、编程题(共19分)
编写一个完整程序,如果字节变量 TESTONE和 TESTTWO相等,则调用 ALLSAME子程序在屏幕上显示字符‘*’,否则调用 NOTSAME子程序在屏幕上显示字符‘&’。 答案:DSEG SEGMENT
TESTONE DB ?
TESTTWO DB ? DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG START:MOV AX,DSEG
MOV DS,AX
MOV AL,TESTONE CMP AL,TESTTWO JE CALLSAME
CALL NOTSAME JMP CONTINX
CALLSAME:CALL ALLSAME CONTINX:MOV AH,4CH
INT 21H
ALLSAME PROC
MOV DL,‘*’ MOV AH,2
INT 21H
RET
ALLSAME ENDP NOTSAME PROC
MOV DL,‘&’
MOV AH,2 INT 21H RET
NOTSAME ENDP CSEG ENDS
END START
9