![]() | 第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 |