36.按下列要求写出数据段DATA的相应内容。 (1)TAB是0~9的ASCII码表。
(2)STR是字符串变量,字符串为COMPUTER。 (3)BUF是100个空格的缓冲区。
(4)COUNT是计算BUF缓冲区中字节数的常量变量。 (5)AD是存放TAB的偏移地址变量。
(6)D是字节变量,数值为15H,2,3 DATA SEGMENT
TAB DB ?0123456789? STR DB ?COMPUTER? BUF DB 100 DUP(? ?) COUNT = $-BUF AD DW TAB D DW 15H,2,3 DATA ENDS 37. 现有程序如下:
DATA SEGMENT X DB 0ABH FLAG DB 0 DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,X CMP AL,0 JGE L MOV FLAG,0 JMP EXIT L: MOV FLAG,1 EXIT: MOV AH,4CH
INT 21H CODE ENDS
END START 请回答:(1)该程序完成什么功能?
(2)程序执行完后FLAG中的内容是多少? .
(1)判断X,当X≥0时将FLAG置1,否则清0
(2)FLAG中的内容为0 38. 现有程序如下:
DATA SEGMENT BUF DB 0 DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AH,1 INT 21H CMP AL,61H JB N CMP AL,7AH JA N
SUB AL,20H N: MOV BUF,AL MOV AH,4CH INT 21H CODE ENDS
END START 请回答:(1)该程序完成什么功能?
(2)如果要将“CMP AL,7AH”改为“CMP AL,7BH”,则相应的指令
“JA N”应改为什么指令?
.
(1)将键盘输入的小写字母(a~z)变为大写字母存放在BUF中,其它字符则不改变,其值存放在BUF中。
(2)JAE L 39. 现有程序如下:
DATA SEGMENT X DW 7000H Y DW 9000H DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,X SUB AX,Y JO L MOV DL,?N? JMP EXIT L: MOV DL,?Y? EXIT: MOV AH,2 INT 21H MOV AH,4CH INT 21H CODE ENDS
END START 请回答:(1)请程序完成什么功能?
(2)程序执行完后,显示输出的结果如何? .
(1)判断X-Y是否产生溢出,有溢出则显示输出Y,否则显示输出N。
(2)显示输出Y 40. 现有程序如下:
DATA SEGMENT BUF1 DB ?ABCDAC? C1 = $-BUF1 BUF2 DB ?C? BUF3 DW 0
DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX LEA DI,BUF1 MOV CX,C1 MOV AL,BUF2 CLD
REPNE SCASB JNZ N MOV DL,?Y? MOV AH,2 INT 21H DEC DI MOV BUF3,DI JMP EXIT N: MOV DL,?N? MOV AH,2 INT 21H
EXIT: MOV AH,4CH INT 21H CODE ENDS
END START 请回答:(1)该程序完成什么功能?
(2)程序运行后,BUF3中的内容是什么?显示输出是什么? .
(1)搜索BUF1中是否存放BUF2中的字符,有则显示Y,并将该字符在BUF1中
存放的位置送BUF3,否则显示N。 (2)BUF3中的内容为2,显示输出Y。
41. 现有程序如下:
DATA SEGMENT
X DB 4FH
BUF DB 2 DUP(0) DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,X MOV CL,4
, SH, R AL,CL
CMP AL,9 JBE L ADD AL,7 L: ADD AL,30H MOV BUF,AL MOV AL,X AND AL,0FH CMP AL,10 JB M ADD AL,7 M: ADD AL,30H MOV BUF+1,AL MOV AH,4CH INT 21H CODE ENDS
END START 请回答:(1)该程序完成什么功能?
(2)程序运行后BUF中的内容依次是什么?
(1)将X中的两位十六进制数转换成ASCII存放在BUF中。
(2)34H,46H
42.现有程序如下: