- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言程序设计 第四版
【课后习题答案】 --囮裑為檤
第五章 高级汇编语言程序设计
5.1 条件表达式中逻辑与“”表示两者都为真,整个条件才为真,对于程序段: .if (X==5) (ax!=bx) inc ax .endif请用转移指令实现上述分支结构,并比较汇编程序生成的代码序列。
cmp X, 5
?????? je??? abc
?????? jmp?? done
abc: cmp ax, bx
?????? jne?? cde
?????? jmp?? done
cde: inc ax
done:....
5.2条件表达式中逻辑与“||”表示两者之一为真,整个条件就为真,对于程序段: .if (X==5) || (ax!=bx) inc ax .endif请用转移指令实现上述分支结构,并比较汇编程序生成的代码序列。
cmp X, 5
???????? je??? abc
???????? jmp?? done
???????? cmp ax, bx
???????? jne?? abc
???????? jmp?? done
abc:??? inc ax
done:?? ....
5.3、对于程序段: .while ax!=10 mov [bx],ax inc bx inc bx inc ax .endw请用处理器指令实现上述循环结构,并比较汇编程序生成的代码序列。
5.4、对于程序段: .repeat mov [bx],ax inc bx inc bx inc ax .until ax==10请用处理器指令实现上述循环结构,并比较汇编程序生成的代码序列。
5.5、宏是如何定义、调用和展开的?
宏名??? macro?? [形参表]
??????宏定义体
?????? endm
宏调用时,利用宏名带上实参即可,格式如下:
??????宏名 [实参表]
5.6、宏定义中的形式参数有什么特点,它是如何进行形参和实参结合的?
??宏展开时的形参与实参结合是用位置匹配的实参对形参进行取代。实参个数与形参个数不同时,多余的实参没有作用,缺少的实参则用空格代替。取代时,不进行有效性等检查。
5.7、宏结构和子程序在应用中有什么不同,如何选择采用何种结构?
???子程序在执行阶段需要由主程序执行调用指令CALL进行调用,进而转入子程序执行,子程序执行结束执行返回指令RET返回主程序。子程序如果被多次使用,则会减少目标程序代码;主程序与子程序之间主要采用寄存器、存储单元、堆栈等传递参数。子程序适合于程序段较长或为减少目标代码的场合
5.8 没有。。。
5.9、对于例题5.5b的宏定义shrot,对应如下宏指令的宏展开是什么? shrot word ptr [bx],4,rorshrot word ptr [bx],4,ror
1???? push cx
1??? mov cl,4
1???? ror word ptr [bx],cl
1???? pop cx
5.10、定义一个宏logical,用它代表4条逻辑运算指令:and/or/xor/test,注意需要利用3个形式参数,并给一个宏调用以及对应宏展开的例子。
logical???? macro lcode,dopd,sopd
??????????? lcode dopd,sopd
??????????? endm
例如,如果使用“and ax,[bx]”指令,可以利用该宏定义,写出宏指令如下:
???? logical and,ax,[bx]
初看起来,这个问题似乎比较难解决。实际上,这4条逻辑指令都具有相同的指令操作数格式,所以可以归纳为如上宏定义。
5.11 没有。。
5.12、编写一个宏指令move doprnd,soprnd,它实现任意寻址方式的字量源操作数送到目的操作数,包括存储单元到存储单元的传送功能。 move???? MACRO doprnd,soprnd
???? push ax
???? mov ax,soprnd
???? mov doprnd,ax
???? pop ax
???? ENDM
5.13;
movstr?? strN,dstr,sstr
???????? lea si, sstr
???????? lea di, dstr
???????? mov cx, strN
???????? cld
???????? rep m
文档评论(0)