STOSB指令的使用方法
2007-06-26 16:26
253 查看
;程序简要说明了stosb指令的功能,并演示了其执行效果
;源数据段,对应DS
DATAS SEGMENT
STRS DB 'HELLO!'
DATAS ENDS
;目标数据段,对应ES
DATAD SEGMENT
STRD DB 6 DUP('D')
DATAD ENDS
;堆栈段
STACKS SEGMENT
DB 256 DUP(0)
STACKS ENDS
;字符显示宏指令的定义
DISP_CH MACRO ascii
mov ah, 2
mov dl, ascii
int 21h
ENDM
;换行宏
NEXT_LINE MACRO
DISP_CH 0DH
DISP_CH 0AH
ENDM
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS,ES:DATAD
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,DATAD
MOV ES,AX
CLD
;填充目标数据段
MOV CX,6H
XOR DI,DI
MOV AL,'$'
REP STOSB ;使用ES:DI
;显示源数据段
MOV CX,6H
MOV SI,OFFSET STRS
SHOW_SD:
DISP_CH DS:[SI]
INC SI
LOOP SHOW_SD
;换行
NEXT_LINE
;显示目标数据段
MOV CX,6H
MOV DI,OFFSET STRD
SHOW_DD:
DISP_CH ES:[DI]
INC DI
LOOP SHOW_DD
MOV AH,4CH
INT 21H
CODES ENDS
END START
;运行结果:
HELLO!
$$$$$$
Press any key to continue
如果注释掉下面的模块:
;填充目标数据段
MOV CX,6H
XOR DI,DI
MOV AL,'$'
REP STOSB ;使用ES:DI
则运行结果为:
HELLO!
DDDDD
Press any key to continue
;源数据段,对应DS
DATAS SEGMENT
STRS DB 'HELLO!'
DATAS ENDS
;目标数据段,对应ES
DATAD SEGMENT
STRD DB 6 DUP('D')
DATAD ENDS
;堆栈段
STACKS SEGMENT
DB 256 DUP(0)
STACKS ENDS
;字符显示宏指令的定义
DISP_CH MACRO ascii
mov ah, 2
mov dl, ascii
int 21h
ENDM
;换行宏
NEXT_LINE MACRO
DISP_CH 0DH
DISP_CH 0AH
ENDM
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS,ES:DATAD
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,DATAD
MOV ES,AX
CLD
;填充目标数据段
MOV CX,6H
XOR DI,DI
MOV AL,'$'
REP STOSB ;使用ES:DI
;显示源数据段
MOV CX,6H
MOV SI,OFFSET STRS
SHOW_SD:
DISP_CH DS:[SI]
INC SI
LOOP SHOW_SD
;换行
NEXT_LINE
;显示目标数据段
MOV CX,6H
MOV DI,OFFSET STRD
SHOW_DD:
DISP_CH ES:[DI]
INC DI
LOOP SHOW_DD
MOV AH,4CH
INT 21H
CODES ENDS
END START
;运行结果:
HELLO!
$$$$$$
Press any key to continue
如果注释掉下面的模块:
;填充目标数据段
MOV CX,6H
XOR DI,DI
MOV AL,'$'
REP STOSB ;使用ES:DI
则运行结果为:
HELLO!
DDDDD
Press any key to continue
相关文章推荐
- nginx root、alias、location指令使用方法
- 关于Delphi中预编译指令的使用方法
- Windows下的命令行指令使用方法,有些东西还是比较有意思的,以前没有注意
- mysql中show指令详细使用方法
- gcc基本的使用方法及常用指令
- 只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态等错误解决方法(原)
- rlwrap使用方法(oracle的指令上下翻頁工具)
- 如何理解Vue的v-model指令的使用方法
- 高级搜索指令大全与使用方法
- cmpy指令的使用方法
- 使用cmd执行指令,遇到中间有空格的路径处理方法
- 代码指令mac 下 SVN使用方法
- 深入学习JavaScript的AngularJS框架中指令的使用方法
- arm的mmu使用方法与协处理器cp15指令的讲解
- linux 环境下 Access,Modify,Change区别以及find指令简易使用方法
- 详细介绍预处理指令data_seg的使用方法
- mysql中show指令使用方法详细介绍
- INT 21H 指令说明及使用方法
- 规避使用 vue 的 v-html 指令的方法
- Linux使用指令释放缓存提升系统运行速度的方法