13 12
发新话题
打印

懂汇编的帮个忙!!

懂汇编的帮个忙!!

我看的汇编教材上的一个汇编程序!运行后却不知道怎么看到运行结果!从网上查到是要用debug的d命令可是从现实的结果看怎么也不向是想要的结果!这个程序的目的是把40个字母a的字符从源缓冲区传送到目的缓冲区!程序代码如下:

;PROGRAM TITLE GOES HERE-ex_movs
;*****************************
data segment ;define data segment
source_buffer db 40 dup('a')
data ends
;********************************
extra segment ;define extra segment
dest_buffer db 40 dup(?)
extra ends
;*****************************
code segment ;define code segment
;------------------------
main proc far ;mian part of program
assume cs:code ,ds:data ,es:extra
start :
;set up stack for return
push ds ;save old data segment
sub ax,ax
push ax ;put zero in ax
;set ds register to current data segment
mov ax,data
mov ds,ax
;set es register to currnet extra segment
mov ax,extra
mov es,ax
;main part of program goes here
lea si,source_buffer ;put offset addr of source
lea di,dest_buffer
cld
mov cx,40
rep movsb
ret
main endp
;---------------------------------------
code ends ;end of code segment
;*********************************
end start ;end of assembly

debug命令的显示结果为:


[此贴子已经被作者于2006-2-19 10:09:33编辑过]

TOP

1: debug 可执行文件

2:单步执行一直到你的程序的结尾去

3:再用-d 看内存中的数据

你直接用debug ,只是看到的是 原来电脑中的内存的数据,

根本没有执行该程序,当然没有a的数据出现

TOP

我是现运行了程序然后在用的debug的d命令!只是抓图的时候没都抓上!你说得那个但不执行怎么执行啊!

刚学汇编所以很多都不会!

TOP

看来lz的汇编离入门很远呢。

为什么不学点别的编程语言再学汇编呢???

[img]http://www.gohs.net/bbs/attachment.php?s=&postid=2276864[/img]

TOP

不会吧!楼上!说的这样直接啊!想必你已经入门了吧!希望你能够多多指教!我确实学的不怎么样!我承认!我会努力的!

上面的那个回帖是我一不小心打了错别字,单步执行打成了但不执行了!

TOP

我不懂……

所以只好路过……

TOP

1: debug 可执行文件

2:单步执行一直到你的程序的结尾去

3:再用-d 看内存中的数据

如果你先运行了可执行文件,再直接输入debug也是没有任何效果的,明白吗?

TOP

行,no problem ,找我把,qq 21484908
[img]http://www.gohs.net/bbs/attachment.php?s=&postid=2276864[/img]

TOP

我已经不用QQ了!很抱歉啊!!不过还是谢谢你的好意!

TOP

他用msn

TOP

 13 12
发新话题