教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 建筑文档 >

第5章 - 模块化程序设计(2)

来源:网络收集 时间:2026-08-12
导读: (2)必要时做一点修改,使该宏能够把NOT指令包括进去,给出一个使用NOT指令的宏 调用以及对应宏展开的例子。 答:(1) LOGICAL MACRO op,dst,src op dst,src ENDM LOGICAL and,eax,1 00000000 83 E0 01 1 and eax

(2)必要时做一点修改,使该宏能够把NOT指令包括进去,给出一个使用NOT指令的宏

调用以及对应宏展开的例子。 答:(1)

LOGICAL MACRO op,dst,src op dst,src ENDM LOGICAL and,eax,1 00000000 83 E0 01 1 and eax,1 LOGICAL or,eax,1 00000003 83 C8 01 1 or eax,1 LOGICAL xor,eax,1 00000006 83 F0 01 1 xor eax,1 LOGICAL test,eax,1 00000009 A9 00000001 1 test eax,1 (2)

LOGICAL MACRO op,dst,src IFB op dst ELSE op dst,src ENDIF ENDM LOGICAL not,eax 00000000 F7 D0 1 not eax

习题5.20

有一个宏定义:

Defstr macro name,num,string Name&num byte ‘&string&‘,0 Endm

给出如下宏调用的宏展开:

(1)defstr msg,4,

(2)defstr msg,5, 答:

Msg4 byte ‘Chapter 4:Program Structure’,0

Msg5 byte ‘Chapter 5:Procedure Programming’,0

习题5.21

定义一个宏“movestr strN,,dstr,sstr”,它将strN个字符从一个字符区sstr传送到另一个字符区dstr。假设数据段定义如下缓冲区,请使用上述宏的调用实现STRING1到STRING2的传送。

String1 byte ‘In a major matter,no detail are small.’,0 String2 byte sizeof string1 dup(0) 答:

movestr MACRO strN,dstr,sstr

push ecx push esi push edi mov ecx,strN lea esi,sstr lea edi,dstr cld rep movsb pop edi pop esi pop ecx ENDM

习题5.22

利用重复汇编定义一个数据区,数据区有100个双字,每个双子的高字部分依次是2,4,6,...,200,低字部分都是0。 答: num = 0

REPEAT 100 num = num +2 word 0,num ENDM

习题5.23

利用宏结构完成以下功能:如果名为count的数大于5,指令“ADD EAX,EAX”将汇编10次,否则什么也不汇编。 答:

IF count GT 5 REPEAT 10 ADD EAX,EAX ENDM ENDIF

习题5.24

用宏结构实现宏指令FINSUM,它比较两个数varx和vary,若varx>=vary,则执行sum=varx+8*vary,否则执行sum=4*varx+vary。 答:

FINSUM MACRO varx,vary IF varx GE vary sum = varx + 8 * vary ELSE sum = 4*varx+vary ENDIF ENDM

第5章 - 模块化程序设计(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/681520.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)