- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章_5 习题
第四章 汇编语言程序设计;;;;;【例】 画出下列语句中的数据在存储器中的存储情况。
ARRAYB DB 12,34H,‘ABCD’,2 DUP(?,2)
ARRAYW DW 1234H,‘AB’,‘CD’,?,2 DUP(?,2);【例】程序中数据定义如下:
DATA1 DW ?
DATA2 DB 32 DUP (?)
DATA3 DD ?
DLENGTH EQU $-DATA1
试问DLENGTH的值是多少?;【例】程序中数据定义如下:
BUFFERB DB ‘ABCDEF’
RESULT DB ?
BUFFERW DW 30 DUP(?)
写出以下指令的执行结果:
MOV AX,TYPE RESULT ;AX=
MOV BX,TYPE BUFFERW ;BX=
MOV CX,LENGTH BUFFERB ;CX=
MOV DX,LENGTH BUFFERW ;DX=
MOV AX,SIZE RESULT ;AX=
MOV BX,SIZE BUFFERW ;BX=;【例】设XX=1103H,则执行下列指令后AX和CX各为多少?若XX=03H,则结果又如何?
MOV AX,XX AND 0FFH
MOV CX,XX EQ 1103H;【例】编写程序段计算下面表达式的值(各变量均为字节变量):
Z=((X-Y)/10+W)×4;【例】两个ASCII码数串定义如下:
STRl DB 352678
STR2 DB 123400
编写程序段,计算STR1+STR2,要求结果仍然是ASCII码串。; LEA DI,STR1+5
LEA SI,STR2+5
MOV BX,DEST+6
MOV CX,6
CLC
LOP: MOV AL,[SI]
MOV AH,[DI]
PUSHF
AND AX,0F0F0H
POPF
ADC AL,AH
AAA;;【例】设A、B是长度为20的字节数组,用串操作指令编写程序实现A、B两组数据的相互交换,试完善本程序。
DATA SEGMENT
A DB “ABCDEFGHIJKLMNOPQR”
ORG 14H
B DB 1,2,3,4,5,6,7,8,9,0AH,0BH
DATA ENDS
……
LEA SI,A
LEA DI,B
MOV CX,10
LOP1: MOV AX,[SI]
MOV [SI],AX
ADD DI,2
LOOP LOPl
……;【例】编写完整程序,将内存中某数据块的正数和负数分开,分别将这些正数和负数送同一数据段的两个缓冲区中,并显示正数和负数的个数。 ;CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA SI,BUF
LEA DI,PLUS
LEA BX,NEGT
MOV CX,N
LOP: MOV AL,[SI]
INC SI
CMP AL,0
JA POS
MOV [BX],AL
INC BX
JMP AGAIN
POS: MOV [DI],AL
INC DI
AGAIN:LOOP LOP;【例】有子程序定义如下:
SUB1 PROC
TEST AL,80H
JE PLUS
TEST BL,80H
JNE EXIT0
JMP CHANGE
PLUS: TEST BL,80H
JE EXIT0
CHANGE: XCHG AL,BL
EXIT0: RET
SUB1 ENDP
(1) 子程序的功能是什么?
(2) 如调用子程序前AL=88H,BL=97H,那么返回主程序时,AL和BL各等于多少?;(1) 当AL0且BL0时,执行EXIT0
当AL0且BL0时,执行EXIT0
当AL0且BL0时,执行CHANGE
当AL0且BL0时,执行CHANGE
由以上组合归纳可得,当AL,BL中的数符号相同时它们各自保持不变,当AL,BL中的数异号时交换AL,BL中的数据。
文档评论(0)