movsw 汇编_汇编程序的 movsb movsw movsd的使用

;*******************************************************

TITLE movsb,movsw,movsd

;*******************************************************

;*******************************************************

;程序运行平台说明

.386

.MODEL FLAT,STDCALL

OPTION CASEMAP:NONE

;*******************************************************

;*******************************************************

;文件包含

INCLUDE Irvine32.inc

;*******************************************************

;*******************************************************

;数据段说明

.DATA

stbSource byte "this is byte source",0

stbSize=$-stbSource

stbDestination byte stbSize dup(0)

stwSource word 13,45,48,15,1574,0

stwSize=($-stwSource)/2

stwDestination word stwSize dup(0)

stdSource dword 12,321,15,2,145,112,0

stdSize=($-stdSource)/4

stdDestination dword stdSize dup(0)

stbstr byte 0dh,0ah,"这是movsb的结果",0dh,0ah,0

stwstr byte 0dh,0ah,"这是movsw的结果",0dh,0ah,0

stdstr byte 0dh,0ah,"这是movsd的结果",0dh,0ah,0

;*******************************************************

;*******************************************************

;代码段定义

.CODE

main proc

;movsb 的使用

mov esi,offset stbSource

mov edi,offset stbDestination

mov ecx,stbSize

cld

rep movsb

mov edx,offset stbstr;

call WriteString

;movsb 查看结果

mov edx,offset stbDestination

call WriteString

;movsw的使用

mov esi,offset stwSource

mov edi,offset stwDestination

mov ecx,stwSize ;使用movsw时,要注意ecx的值存放的是以word为单位的长度

cld

rep movsw

mov edx,offset stwstr

call WriteString

;movsw 查看结果

mov ecx,stwSize

mov esi,0

L1:

xor eax,eax

mov ax,stwDestination[esi]

call WriteInt;

add esi,2;

loopd L1;

;movsd的使用

mov esi,offset stdSource

mov edi,offset stdDestination

mov ecx,stdSize

cld;不要忘记了设定方向

rep movsd

mov edx,offset stdstr

call WriteString

;movsd查看结果

xor esi,esi

mov ecx,stwSize

L2:

mov eax,dword ptr stdDestination[esi]

call WriteInt

add esi,4

loopd L2;

exit

main endp

end main

;*******************************************************

PS:这里面要注意的就是在使用movsb movsw movsd时,ecx的值,

当使用movsb时,ecx当中就是要复制的byte的个数

当使用movsw时,ecx当中就是要复制的word的个数

当使用movsd时,ecx当中就是要复制的dword的个数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值