目录 上一页 下一页 下一章

第5章 子程序和串处理 -113-










move_str
insert_str


















insert_str
code

mov
std
rep
pop
pop
pop
pop
pop
ret
endp
proc
push
push
push
push
push
mov
mov
mov
add
mov
cld
rep
pop
pop
pop
pop
pop
ret
endp
ends
end
cx,47

movsb
es
di
si
cx
ax


near
ax
cx
si
di
es
ax,data
es,ax
si,bx
di,offset string
cx,8

movsb
es
di
si
cx
ax



main
;移动47个字符
;设置移动方向为从后向前
;移动字符
;恢复入口处保存的寄存器




;返回主过程

;INSERT_STR子过程
;保存将要使用的寄存器




;设置ES寄存器指向数据段

;SI寄存器指向待插入的子串
;DI寄存器指向源串中的插入点
;移动的字符数送入CX寄存器
;设置移动方向为从前向后
;移动8个字符
;恢复入口处保存的寄存器




;返回主过程



  新增的MOVS指令就是直接在存储器中移动数据的一个串处理指令:
助记符:MOVS(Move String)
用 途:在内存中直接移动成串数据
格 式:MOVSB(移动一字节)
    MOVSW(移动一个字)
执 行:将DS:SI处的一个字节(或字)直接传送到ES:DI处,同时SI,DI寄存器根据DF的状态相应增减。
  这个指令无论从形式上看还是从执行的操作上看都没有更多值得深入讨论的。只有一点需

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章