DA2 DB 26 DUP(?) ?? LEA DI,DA1 (1) MOV AL,?A? MOV CX,26 CLD
LOP1:STOSB (2) INC AL LOOP LOP1 MOV CX,26 LOP2:(3) DEC AL STOSB LOOP LOP2
1)MOV AL,?A? ;2)INC AL; 3)DEC AL
15、从键盘逐一输入字符,并从显示器输出,当输入到字符‘$’时,则程序退出返回。请在下列程序中的空格处填入适当指令使其完整。 NEXT:MOV AH,1 INT 21H (1) CMP AL,‘$’ JZ EXIT (2)MOV DL,AL MOV AH,2 INT 21H (3) JMP NEXT EXIT: RET
1)CMP AL,‘$’;2)MOV DL,AL;3)JMP NEXT
16、在AL中有一个十六进制数的ASCII码,完成下面程序段在每一空白处填上一条适当指令,实现将AL中的ASCII码转换成二进制数。
CMP AL,3AH JB DONE SUB AL,7
DONE: SUB AL,30H
HLT
(参考答案JB DONE、SUB AL,30H)
17、下列程序完成的是在3个数中找出最小的数放于AL中,请在程序中的空格处填入一条适当的指令使其完整。(5分)
MOV AL,X MOV BL,Y MOV CL,Z CMP AL,BL (1)JLE NEXT1 (2)XCHG AL,BL
NEXT1:CMP AL,CL (3)LE NEXT2 (4)XCHG AL,CL NEXT2:RET
1)JLE NEXT1;2)XCHG AL,BL;3)JLE NEXT2;4)XCHG AL,CL
19、本程序实现将BX寄存器内的二进制数用十六进制的形式,在屏幕上显示出来,请将没写完的空格埴上。 CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE START:PUSH DS SUB AX,AX (1) PUSH AX MOV CH,(2) 4 ROTATE:MOV CL,4 ROL BX,CL MOV AL,BL
AND AL,(3) 0FH ADD AL,30H
CMP AL,(4) 3AH JL PRINTIT ADD AL,7H
PRINTIT:MOV DL,AL MOV AH,2
INT 21H
DEC (5) CH JNZ ROTATE RET MAIN ENDP CODE ENDS END START
1)PUSH ; 2)4; 3)0FH; 4)3AH; 5)CH
20、以下代码实现用10个1初始化内存单元BUF缓冲区,请在空白处填上适当指令。
MOV AX,SEG BUF MOV ES,AX
LEA DI
MOV CX,10 MOV AL,31H
BUF 、 CLD REP STOSB
参考答案:LEA DI,BUF、CLD
21、下述程序段完成计算1+2+…+10的和,并将结果存于AX中,试把空白处填上适当的指令(每一空白只填一条指令)
XOR AX,AX MOV BX,0 MOV CX,11 CONT:ADD AX,BX INC BX LOOP CONT (第一空MOV CX,11 ,第二空LOOP CONT)