汇编上机题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.从键盘上接受一个字符,找出它的前导字符和后继字符,按序显示这三个字符。
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
DA TA SEGMENT
BUF DB 'PLEASE INPUT A CHAR:$'
X =3
XX DB ?
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA
MOV DS,AX
LOPA: MOV CX,X
LEA DX,BUF
MOV AH,9
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
MOV AH,1
INT 21H
DEC AL
LOPA1: MOV XX,AL
MOV DL,XX
MOV AH,2
INT 21H
INC AL
DEC CX
JNE LOPA1
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
JMP LOPA
MOV AH,4CH
INT 21H
CODE ENDS
END START
2.从键盘上接受一个数字字符,如不是,显示
“not odd”,否则显示“odd”。
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
DA TA SEGMENT
BUF DB 'PLEASE INPUT A NUMBER:$'
A D
B 'not odd$'
B DB 'odd$'
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK BEGIN: MOV AX,DATA
MOV DS,AX
LEA DX,BUF
MOV AH,9
INT 21H
MOV AH,1
INT 21H
CMP AL,30H
JB N
CMP AL,39H
JA NEXT
LEA DX,B
MOV AH,9
INT 21H
JMP EXIT
N: LEA DX,A
MOV AH,9
INT 21H
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN
1.将以H为首地址的字节存储区中的既能被3整除也能被13 整除的无符号整数的个数(假定≤9)显示出来,同时对应的显示它们分别对应的地址偏移量。(利用多种寻址方式做)STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
DA TA SEGMENT
H DB 3,15,26,39
DB 43,78,156,210
COUNT =$-H
NULL1 DB ' $'
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DA TA,SS:STACK START: MOV AX,DATA
MOV DS,AX
MOV CH,COUNT
MOV CL,0
MOV DX,3
MOV DI,13
LOPA: LEA BX,H
MOV AX,[BX]
DIV DX
CMP AH,0
JNE N
MOV AX,[BX]
DIV DI
JNE N
MOV DL,[BX]
MOV AH,2
INT 21H
LEA SI,NULL1
MOV AH,9
INT 21H
MOV DL,CX
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
MOV DL,0DH
INT 21H
INC CL
INC BX
DEC CH
JNE LOPA
MOV DL,CL
MOV AH,2
INT 21H
N: MOV AH,4CH
INT 21H
CODE ENDS
END START
2.在以TAB为首地址的字存储区中存放有N个无符号数,试
统计低3位全为1的数的个数(个数设为≤9),并显示。
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
DA TA SEGMENT
TAB DW 0005H,0015H,0017H,0118H
DW 1114H,1110H,22F2H,24F5H
COUNT =$-TAB
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DA TA,SS:STACK
BEGIN: MOV AX,DATA
MOV DS,AX
LEA BX,TAB
MOV CX,COUNT
MOV AL,0
MOV DX,[BX]
LOPA: AND DX,7
CMP DX,7
JNE N
INC AL
N: ADD BX,2
DEC CX
JNE LOPA
MOV DL,AL
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN
3.键盘接受一串字符到BUF为首地址的字节单元中,要求用下列方法分别编程,将它们以相反的次序显示在屏幕的下一行中:
(1).按地址从尾向前依次显示。
(2).利用堆栈反向显示。
(3).利用交换的方法反序后,然后显示:即ai<——>aj
STACK SEGMENT STACK
DW 128 DUP(?)
STACK ENDS
DATA SEGMENT