- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 汇编语言程序设计
1.?????? 写出完成下列要求的变量定义语句:
(1)在变量var1中保存6个字变量:4512H,4512,-1,100/3,10H,65530;
(2)在变量var2中保存字符串:’BYTE’, ’word’, ’WORD’;
(3)在缓冲区buf1中留出100个字节的存储空间;
? (4)在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程重复7次;
(5)在变量var3中保存缓冲区buf1的长度;
(6)在变量pointer中保存变量var1和缓冲区buf1的偏移地址。
2.??????? 执行下列指令后,DX寄存器中的内容是多少?
TABLE??? DW? 25,36,-1,-16,10000,13
PYL????? DW? 7
……
MOV? BX,OFFSET TABLE
ADD? BX,PYL
MOV? DX,[BX]
3.?????????? 设已用伪指令EQU定义了4个标识符:
N1? EQU? 2100
N2? EQU? 10
N3? EQU? 20000
N4? EQU? 25000
下列指令是否正确?并说明原因。
?? (1)ADD AL,N1-N2;?????? (2)MOV AX,N3+N4;
?? (3)SUB BX,N4-N3;?????? (4)SUB AH,N4-N3-N1;
?? (5)ADD AL,N2;?????????? (6)MOV AH,N2*N2
4.??? 已知在BUF的起始处保存有N个字符的ASCII码,编写汇编语言程序实现,将这组字符串传送到缓冲区BUFR中,并且使字符串的顺序与原来的顺序相反。
5.??? 在缓冲区VAR中连续存放着3个16位的无符号数,编写程序实现将其按递增关系排列;如果VAR中保存的为有符号数,则再编写程序实现将其按递减关系排列。
6.??? 编写程序段实现将AL和BL中的每一位依次交叉,得到的16位字保存在DX中,例如(AL),(BL),则得到的(DX)10011001B。
7.??? 已知在字变量VAR1、VAR2和VAR3中保存有3个相同的代码,但有一个错码,编写程序段找出这个错码,并将它送AX,其地址送SI;如果3个代码都相同,则在AX中置-1标志。
8. 下列变量各占多少字节?
A1 DW 23H, 5876H
A2 DB 3 DUP(?), 0AH, 0DH, ‘$’
A3 DD 5 DUP(1234H, 567890H)
A4 DB 4 DUP(3 DUP(1, 2, ‘ABC’))
9. 在附加段中有一个数组,首地址在BUFF,数组中第一个字节存放了数组的长度。编一个程序在数组中查找0,找到后把它从数组中删去,后续项向前压缩,其余部分补0。
参考答案:
1.? 解:
(1)var1? DW? 4512H,4512,-1,100/3,10H,65530
(2)var2? DB? ’BYTE’, ’word’, ’WORD’
(3)buf1? DB? 100 DUP(?)
(4)buf2? DB? 7 DUP(5 DUP(55H), 10 DUP(240))
(5)var3? DB? LENGTH? buf1
(6)pointer? DW? var1, var2
2. 答:DX寄存器中的内容为10FFH
3. 答:(1)ADD AL,N1-N2 ;指令错误,因为N1-N2超出一个字节的范围
??? (2)MOV AX,N3+N4 ;指令正确
??? (3)SUB BX,N4-N3 ;指令正确
??? (4)SUB AH,N4-N3-N1 ;指令错误,因为N4-N3-N1超出一个字节的范围
??? (5)ADD AL,N2 ; 指令正确???
??? (6)MOV AH,N2*N2?? ;指令正确
4.??? 解:??? 设要传送的字符串有30个。
N=30
STACK?? SEGMENT STACK STACK
??????? DW 100H DUP(?)
TOP???? LABEL WORD
STACK? ?ENDS
DATA??? SEGMENT
ASC1??? DB? abcdefghijklmnopqrstuvwxyz1234
ASC2??? DB? 30 DUP(?)
DATA??? ENDS
CODE??? SEGMENT
??????? ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:
??????? MOV AX, DATA
??????? MOV DS, AX
??????? MOV ES, AX
??????? M
文档评论(0)