- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言期末试卷(A卷)
华南农业大学期末考试试卷(A卷)
一、简答题(20分,每小题4分)
1、简述不同子程序之间是怎样进行参数传递的?
2、指出以下三条指令的区别(NUM为数据段一个变量名)。
(1)MOV SI,NUM
(2)LEA SI,NUM
(3)MOV SI,OFFSET NUM
3、 BUF1 DB 41H,42H,43H,44H,45H,46H
BUF2 DB 6 DUP(?)
…
MOV SI,OFFSET BUF1
MOV DI,OFFSET BUF2
MOV CX,6
LOP: MOV AL,[SI]
SUB AL,7
AND AL,0FH
MOV [DI],AL
INC SI
INC DI
LOOP LOP
试回答上述程序段执行后,BUF2开始的6个字节存储单元的内容是什么?
答:0ah,0bh,0ch,0dh,0eh,0fh
5、对于这样的程序段:
CMP AX,BX
JGE NEXT
XCHG AX,BX
NEXT: CMP AX,CX
JGE DONE
XCHG AX,CX
DONE: ┆
试回答:
①上述程序执行后,原有AX,BX,CX中最大数存放在那个寄存器?(AX)
②这三个数是带符号数还是无符号数?(带符号数)
二、程序填空(15分,每空3分)
要求:在下划线上填写合适内容,使程序完成所要求的功能,不能增加语句行。
1、从键盘读入一字符串(长度小于40),并输出显示。
MAXNO EQU 41
DSEG SEGMENT
MESG1 DB INPUT A STRING:$
BUF DB MAXNO,?,MAXNO DUP(?)
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START:--(MOV AX,DSEG)
MOV DS,AX
MOV DX,OFFSET MESG1
MOV AH,9
INT 21H
MOV DX,OFFSET BUF
--(MOV AH,0AH)
INT 21H
-- ;取实际读入字符个数(MOV AX,[DX+1])
LEA DI,BUF+2
MOV SI,DI
ADD SI,AX
MOV BYTE PTR [SI],$
LEA DX,BUF+2
MOV AH,9
INT 21H
MOV AX,4C00H
INT 21H
CSEG ENDS
END START
2、以BUF为首址的字节单元中,存放了COUNT个无符号数,下面程序段是找出其中最大数并送入MAX单元中。
BUF DB 5,6,7,58H,62,45H,127,……
COUNT EQU $-BUF
MAX DB ?
┇
MOV BX,OFFSET BUF
MOV CX,COUNT-1
MOV AL,[BX]
LOP1:INC BX
--( CMP AL,BYTE PTR [BX] )
JAE NEXT
MOV AL,[BX]
NEXT:DEC CX
-- (JNE LOP1)
MOV MAX,AL
三、阅读程序(共25分)
1.仔细阅读下面程序列表清单,标注重要程序块的功能,最后说明该程序的功能(15分)。
地址位移量 机器码 汇编语言指令
0000 stack segment stack
0000 0080[ dw 128 dup(0)
0000
]
0100 stack ends
0000 data segment
0000 63 6F 6E 74 69 6E 75 str db continue?(y/n)$
65 3F 28 79 2F 6E 29
24
000F data ends
0000 code segment
assume cs:code,ds:data,ss:stack
0000 B8 ---- R start: mov ax,data
0003 8E D8 mov ds,ax
0005 B8 ---- R mov ax,stack
0008 8E D0 mov ss,ax
000A E8 002E R l: call hdc
000D E8 009C R call crlf
0010 E8 0062 R
原创力文档


文档评论(0)