【学习笔记】汇编:关于CLD以及DF的用法,还有一点REP的使用
2018-02-26 20:06
477 查看
DF direction Flag 方向标志位
作用是表示DI 以及 SI这两个自增(减)的偏移地址寄存器的自增(减)方向
当DF为1时,DI与SI自增,当DF为0时,DI与SI自减
CLD的作用就是更改DF的值,取反
与REP相结合就可以做到方便快捷的循环取值DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
CALL cpy_Boot
MOV AH,4CH
INT 21H
;=================================================
BOOT: MOV AX,1000H
MOV AX,1000H
MOV AX,1000H
MOV AX,1000H
END_BOOT: NOP
;=================================================
cpy_Boot:
MOV BX,CS
MOV DS,BX
MOV SI,OFFSET BOOT
MOV BX,0
MOV ES,BX
MOV DI,07E00H
MOV CX,OFFSET END_BOOT - BOOT
CLD
REP MOVSB
END_CPY_BOOT: RET
;=================================================
CODES ENDS
END START该程序的作用是将BOOT到END_BOOT之间的指令存放到0:7E00之间
其中REP是一个复杂的指令,以后再详细了解
作用是表示DI 以及 SI这两个自增(减)的偏移地址寄存器的自增(减)方向
当DF为1时,DI与SI自增,当DF为0时,DI与SI自减
CLD的作用就是更改DF的值,取反
与REP相结合就可以做到方便快捷的循环取值DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
CALL cpy_Boot
MOV AH,4CH
INT 21H
;=================================================
BOOT: MOV AX,1000H
MOV AX,1000H
MOV AX,1000H
MOV AX,1000H
END_BOOT: NOP
;=================================================
cpy_Boot:
MOV BX,CS
MOV DS,BX
MOV SI,OFFSET BOOT
MOV BX,0
MOV ES,BX
MOV DI,07E00H
MOV CX,OFFSET END_BOOT - BOOT
CLD
REP MOVSB
END_CPY_BOOT: RET
;=================================================
CODES ENDS
END START该程序的作用是将BOOT到END_BOOT之间的指令存放到0:7E00之间
其中REP是一个复杂的指令,以后再详细了解
相关文章推荐
- 【学习笔记】汇编:关于DEBUG工具使用的时候的一个注意事项
- Spring学习笔记 关于Bean属性的初始化 - 使用inner bean以及List, Map与Set的初始化
- 【学习笔记】汇编:关于CMP的使用实例
- Spring学习笔记 关于Bean定义的重用-使用abstract以及parent标签属性
- Spring学习笔记 关于Bean定义的重用-使用abstract以及parent标签属性
- 查看CPU和内存以及debug的使用——汇编学习笔记(二)
- 关于数据结构以及学习的一点建议
- delphi与汇编笔记(2)------关于EBP寄存器的说明与使用
- 汇编语言学习笔记-使用对话框
- 第四章 控制执行流程的一些笔记以及关于char的一点东西
- C#学习笔记14——Trace、Debug和TraceSource的使用以及日志设计
- [笔记].关于使用JLINK的三线SWD模式调试NUC1xx的一点粗浅认识
- 关于腾讯首页广告的一点学习和使用
- Symbian 程序自定义入口点以及使用 ARM 汇编的一点记录
- 关于进程内存使用的一点学习和实践
- us/os ii 学习笔记 20100421 关于os的一点宏观理解
- 汇编语言学习笔记-使用菜单资源
- C++ Data Structure 学习笔记 (2011.5.2)——Cin的用法详解以及文件的读取
- SilverLight学习笔记--关于使用IValueConvert对绑定数据的格式化操作
- 关于JQuery 插件Grid的学习使用笔记 (PHP版)