概述
数据批量传输
- 主要指令
- 实验代码
主要指令
数据批量传输所使用的指令有,传输命令movsb、movsw,以及循环指令loop。
movsb(或movsw)运行时,首先会检测df标志位的值,来决定数据读取的方向。并且自动以ds:si
作为数据的源地址,以es:di
作为目标地址。
命令运行以后会根据df的值自动修改该si和di的值,如果df=0也就是正向传输,则si和di的值同时加1(或2)
rep指令会循环执行后面跟随的指令,会自动检测cx寄存器中的值,如果不为0,则将cx减1,同时运行后面紧跟的命令。直到cx的值为0为止。
实验代码
jmp near start ;这里使用jmp直接跳到指令部分执行,原因就是cpu分不清指令和数据,都是按照顺序执行的。如果不手动跳过数据区,cpu就会误把数据当作指令执行,造成混乱。
mytext: db 'H',0x07,'e',0x07,'l',0x07,'l',0x07,'o',0x07,' ',0x07,
'W',0x07,'o',0x07,'r',0x07,'l',0x07,'ed',0x07,'!',0x07,'!',0x07
start:
mov ax, 0x7c0 ;设置数据段地址为0x7c0,可以省去拼接0x7c00的步骤
mov ds, ax
mov ax, 0xb800 ;显示缓冲区段地址
mov es, ax
;显示Label Offset:
cld
mov si, mytext ;ds:si
mov di, 0 ;es:di
mov cx, (start-mytext)/2 ;循环的次数,计算结果为13
rep movsw ;movsw和movsb指令会自动使用es作为目的数据段,可以不用
拼接
最后
以上就是包容高跟鞋为你收集整理的nasm语言进行数据批量传输主要指令实验代码的全部内容,希望文章能够帮你解决nasm语言进行数据批量传输主要指令实验代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复