标志寄存器06 – 零基础入门学习汇编语言59

第十一章:标志寄存器06

让编程改变世界

Change the world by program

DF标志和串传送指令

我们来看两个程序

编程1: 用串传送指令,将data段中的第一个字符串复制到它后面的空间中。

data segment

db ‘Welcome to masm!’

db 16 dup (0)

data ends

我们分析一下,使用串传送指令进行数据的传送,需要给它提供一些必要的信息,它们是:

① 传送的原始位置:ds:si;

② 传送的目的位置:es:di;

③ 传送的长度:cx;

④ 传送的方向:DF。

在这个问题中,这些信息如下:

① 传送的原始位置:data:0;

② 传送的目的位置:data:16;

③ 传送的长度:16;

④ 传送的方向: 因为正向传送(每次串传送指令执行后,si和di 递增)比较方便,所以设置DF=0。

明确了这些信息之后,我们来编写程序!

相关代码下载

编程2: 用串传送指令,将F000H段中的最后16个字符复制到data段中。

data segment

db 16 dup (0)

data ends

我们还是先来看一下应该为串传送指令提供什么样的信息:

① 要传送的字符串位于F000H段的最后16个单元中,那么它的最后一个字符的位置:F000:FFFF,是显而易见的。

② 我们可以将ds:si指向 F000H段的最后一个单元,将es:di指向data段中的最后一个单元,然后逆向(即从高地址向低地址)传送16个字节即可。

相关信息如下:

① 传送的原始位置:F000:FFFF;

② 传送的目的位置:data:15;

③ 传送的长度:16;

④ 传送的方向:因为逆向传送(每次串传送指令执 行后,si 和 di 递减)比较方便,所以设置 DF=1。

程序实现代码:相关代码下载

pushf和popf

pushf:将标志寄存器的值压栈;

popf:从栈中弹出数据,送入标志寄存器中。

pushf 和 popf,为直接访问标志寄存器提供了一种方法。

视频下载
技术, IT技术, 汇编语言, 视频教程



                                                    风险提示及免责条款

市场有风险,投资需谨慎。本文不构成个人投资建议,也未考虑到个别用户特殊的投资目标、财务状况或需要。用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部