汇编语言学习笔记 第二节:数据传送指令

本文详细介绍了汇编语言中的数据传送指令,包括mov、movsb/movsw/movsd、movzx/movsx以及push和pop。讲解了它们的工作原理和应用场景,并提供了实例演示。此外,还提及了lea指令用于获取内存地址,以及xchg指令用于交换数据。
摘要由CSDN通过智能技术生成

1、mov指令

    语法:mov  <dest>,<source>

    将<source>中的数据复制到<dest>中,同时该数据不会从<source>中移除。不能直接将数据从内存单元移到段寄存器中,必须使用通用寄存器作为中间跳板。

    

    movsb (move string byte):以字节为传送单位,一次传送1个字节。

    movsw (move string word):以为传送单位,一次传送2个字节。

    movsd (move string doubleword):以双字为传送单位,一次传送4个字节。

    以上三个指令后面不跟<dest><source>,作用是将DS:ESI指向的数据传送到ES:EDI指向的位置。每传送一次,ecx中的内容会减少1。

    此外,还要指定是正向传送还是反向传送,正向传送是指传送操作的方向是从内存区域的低地址端到高地址端;反向传送则相反。movsb、movsw、movsd每次正向传送,esi和edi会跟据传送的相应字节数增加1、2、4;反向传送则相应减少1、2、4。这样,esi和edi相当于指向了下一个将要传送的单元。

  

    movzx(Move with Zero-Extend):用0扩展传送。语法:movzx <dest>,<source>

    movsx(Move with Sign-Extend):扩展的比特取决于源操作数的符号位。语法:movsx <dest>,<source>

    movzx和movsx的<dest>必须比<source>的位数要高,即当<dest>是16位的,则<source>只能是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值