汇编上机网页答案文档格式.docx
《汇编上机网页答案文档格式.docx》由会员分享,可在线阅读,更多相关《汇编上机网页答案文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
![汇编上机网页答案文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/23/701cd566-b1d1-4025-8958-5d066d78804e/701cd566-b1d1-4025-8958-5d066d78804e1.gif)
DATASEGMENT
BDB‘PLEASEENTERACHARACTER:
$’;
定义变量B,以其为首地址依次存放提示字符串。
ADB5DUP(?
)
;
定义变量A,同时开辟连续5个字节空间。
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
LEADX,B
MOVAH,9
INT21H
MOVDL,0DH
MOVAH,2
MOVDL,0AH
MOVAH,1
DECAL
MOVA,AL
INCAL
MOVA+1,AL
MOVA+2,AL
MOVA+3,'
$'
LEADX,A
MOVAH,4CH
CODEENDS
ENDSTART
输出:
PLEASEENTERACHARACTER:
7(输入)
678(显示)
2.从键盘上接受一个数字字符,如不是,显示“notodd”,否则显示“odd”。
2、若AL<
0,转到S3。
3、否则,若AL>
4、否则,输出字符串“ODD”。
5、程序结束。
注:
S3功能是输出字符串“NOTODD”。
DATASEGMENTADB'
N'
'
O'
T'
'
D'
定义变量A,以其为首地址依次存放字符串。
CMPAL,'
0'
JBS3
9'
JAS3
LEADX,A+4
JMPEXIT
S3:
EXIT:
MOVAH,4CH
ODD(显示)
第二次作业
1.
将以H为首地址的字节存储区中的既能被3整除也能被13整除的无符号整数的个数(假定≤9)显示出来,同时对应的显示它们分别对应的地址偏移量。
(利用多种寻址方式做)
(1)变址寻址:
BX:
作为H为首地址的存储区的地址指针。
SI:
作为A为首地址的存储区的地址指针。
DI:
同上。
AX:
HDB3,5,7,78,13,39
N=$-H
ADBNDUP(?
CDB?
DDB?
0
EDB?
FDB'
THENUMBERIS:
GDB0AH,0DH,'
IDB'
ADDRESSOFFSET:
START:
MOVAX,DATA
MOVBX,0
MOVSI,0
MOVDI,0
MOVE,0
L1:
CMPBX,N
JAEPRINT
MOVAL,H[BX]
MOVD,AL
MOVAX,WORDPTRD
MOVC,3
DIVC
CMPAH,0
JNEL2
MOVC,13
INCE
MOVA[SI],BL
ADDA[SI],30H
INCSI
INCBX
JMPL1
L2:
PRINT:
LEADX,F
LEADX,G
ADDE,30H
MOVDL,E
L3:
CMPDI,SI
JAEEXIT
LEADX,I
MOVDL,A[DI]
MOVDL,'
INCDI
JMPL3
EXIT:
THENUMBERIS:
2
ADDRESSOFFSET:
3ADDRESSOFFSET:
5
(2)寄存器间接寻址:
CX:
循环计数器和偏移量计数器。
MOVCX,0
LEABX,H
CMPCX,N
MOVAL,[BX]
MOVA[SI],CL
INCCX
ENDSTART
3
(3)基址变址寻址:
寄存器分配和流程图与
(2)基本类似。
补充:
DI还作为以H为首址各变量的偏移量。
BX只存储H的地址。
MOVAL,[BX+DI]
2.
在以TAB为首地址的字存储区中存放有N个无符号数,试统计低3位全为1的数的个数(个数设为≤9),并显示。
作为TAB为首地址的存储区的地址指针。
CL:
测试低3位全为1的计数器。
DX:
临时存储数据。
TABDW1,0,7,15
N=($-TAB)/2
ADB'
THETOTALIS:
MOVCL,0
CMPBX,(N-1)*2
JA
PRINT
MOVDX,7
ANDDX,TAB[BX]
CMPDX,111B
JE
L3
ADDBX,2
INCCL
ADDCL,30H
MOVDL,CL
2
3.
键盘接受一串字符到BUF为首地址的字节单元中,要求用下列方法分别编程,将它们以相反的次序显示在屏幕的下一行中:
(1).按地址从尾向前依次显示。
寄存器分配:
BX:
作为BUF+2为首地址的存储区的地址指针。
BUFDB100
DB?
LEADX,BUF
MOVAH,10
MOVBL,BUF+1
MOVBH,0
DECBX
MOVDL,[BUF+2][BX]
CMPBX,0
JGEL1
dadasd(输入)
dsadad(结果)
(2).利用堆栈反向显示。
作为BUF+2为首地址的存储区的地址指针,也存储循环最大次数。
循环计数器及暂存数据。