您的位置:首页 > 其它

用程序段实现,将BUF缓冲区中的100个字节数据依向反次序传送到存储区STRBUF中

2010-04-18 21:02 411 查看
小题目,对于初学来讲,学到的东西还不少。。。



题目:



用程序段实现,将
BUF
缓冲区中的

1
00
个字节数据依向反次序传送到存储区
STRBUF
中。



.386

.model flat, stdcall

option casemap: none

include windows.inc

include user32.inc

include kernel32.inc

includelib kernel32.lib

includelib user32.lib

.data

BUF db '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890helloworld',0 ;缓冲区的100个字节数据

STRBUF db 100 dup(0)

.code

start:

mov eax , OFFSET BUF ;eax中存放 源BUF 的偏移地址 , 这里一直是BUF首地址的偏移地址

mov ecx , 100 ;ecx寄存器中存放变化量 相当于for语句中的i ,这里给i赋初始值100

loops:

mov bl , [eax+ecx-1]

mov edx , OFFSET STRBUF ;edx中存放 目的STRBUF 的偏移地址 , 开始时是首地址的偏移地址

add edx , 100

sub edx , ecx

mov [edx] , bl

dec ecx ;;;;;;;;

cmp ecx , 0 ;这三条指令的综合功能是:判断ecx寄存器中的值减减(如C语言中 i--)是否为0,不为0则跳回到标号loop处,继续执行“for语句”

jne loops ;;;;;;;;

invoke MessageBox , NULL, offset BUF, offset STRBUF, MB_OK

invoke ExitProcess, 0

end start
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: