MOVSB指令详解

ASSUME CS:CODE,DS:DATA,SS:STACK
STACK SEGMENT
    DB 16 DUP(?)
STACK ENDS

DATA SEGMENT
    MES1 DB 'JUST A TEST!',10,13,'$'
    BUFF1 DB 'MES2:'
    MES2 DB 20 DUP(0)
    BUFF2 DB 'MES3:'
    MES3 DB 20 DUP(0)
DATA ENDS

CODE SEGMENT
    ;============================================
    ;MOVSB指令将DS:SI中数据按字节传送至ES:DI
    ;DF=0时,SI和DI递增;DF=1时,SI和DI递减
    ;CX中为循环次数
    ;MOVSW类似于MOVSB,只是SI和DI递增(递减)数变为2
    ;CLD指令使DF=0;STD指令使DF=1
    ;LEA取偏移地址
    ;============================================
    START:
        MOV AX,DATA
        MOV DS,AX
        MOV ES,AX

        LEA SI,MES1 ;将MES1标记处偏移地址送入SI
        LEA DI,MES2
        MOV CX,15
        CLD
        REP MOVSB

        LEA DX,BUFF1
        MOV AH,9
        INT 21H

        LEA SI,MES1+14
        LEA DI,MES3+14
        MOV CX,15
        STD
        REP MOVSB

        LEA DX,BUFF2
        MOV AH,9
        INT 21H

        MOV AH,1
        INT 21H

        MOV AX,4C00H
        INT 21H
CODE ENDS
END START
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值