17、80x86 汇编语言中的重复前缀与字符串指令详解

80x86 汇编语言中的重复前缀与字符串指令详解

1. 编程练习 7.1

在编程练习 7.1 中,我们需要编写一个程序,将从键盘逐行读取的字符串复制到一个大的存储区域,以便后续处理。具体步骤如下:
1. 使用 input 宏输入一个字符串。
2. 将该字符串复制到数据段中预留的 1024 字节存储块的起始位置。
3. 在存储区域中,在字符串后面添加回车符和换行符。
4. 重复上述过程,将后续字符串复制到存储区域,使其紧跟在上一个字符串的换行符之后。
5. 当源字符串的第一个字符为 $ 时,退出循环,不复制该字符串,但在最后一个字符串的换行符后放置一个空字节。
6. 使用 output 宏显示数据区域中的所有字符,结果应为每行一个输入的字符串。

2. 重复前缀概述

80x86 架构中的每个字符串指令一次仅处理一个字符串元素。不过,它包含三个重复前缀,可将字符串指令转换为自动重复执行的版本,重复次数可以是固定的,也可以直到满足某个条件为止。这三个重复前缀实际上对应两种不同的单字节代码,它们本身不是指令,而是对原始字符串指令的机器代码进行补充,从而形成新的指令。

3. 重复前缀 rep

rep 前缀通常与 movs 指令和 stos 指令一起使用。它的执行逻辑如下:

while coun
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值