- [122633414] 在这里谢谢各位,只是不知道怎么加你们为好友。 03/18 19:10
- [122633414] 谢谢楼上,这几天回头看这一章内容,还是不大明白。 没执行程序前,ds=0b5b,可是 mov a 03/02 00:53
- [thedaydreamwang] 加汕我也是和楼主一样的情况看多了就好了有一个过程的,不要急,汇编是需要慢慢消化的,理论的东西是基础, 02/10 01:53
- [ye547896] ??? 搞不懂博主的问题! 说的什么意思啊! 是 在代码段里定义了数据 打开 IP还是0 吗? 01/28 18:12
- [release_lag] 晕,一楼的发的广告啊??? 01/27 16:48
- [mywiil] 熟练以后知道有这么一回事:ds+16。但是不明白为什么? =================== 01/18 14:25
- [122633414] 哦,明白了。空格,怪自己太~~~~~~! 01/18 00:42
- [122633414] 今天在上班的时候,用电脑做了一个程序,定义多个段。发现了一个问题。这个问题应该和以上的一样, 01/15 00:23
- [lishzh2009] 有勇气学这个,强 [url=http://www.uggbootsky.com/classic-c 01/13 19:39
- [122633414] 多谢大侠的鼓励。还请多多指教啊! 01/04 13:07
[2010-01-12 23:08]
自学汇编的15天
最先,看的《汇编语言~~~~》和《微机原理》,看了又看,甚至有些都能背了,比如寻址方式,和一些助记符等等~~~。但似乎没起什么作用,还是一头雾水,但是不知道问题在哪。也许是心太急,既然我能够理解寻址方式,和助记符所表达的意思,我想我能分析程序。结果,我看了一个据说是很简单的程序(三个数的加减):
title add and subtract (addsub.asm)
include irvine32.inc
.code
main proc
end main
刚开始,只是明白
mov eax,10000h
add eax,40000h
sub eax,20000h
call
这一段的意思,三个数加减,和调用dumpregs显示cpu寄存器值的子程序。剩下的一个都不懂,比如 main proc、exit、irvine32.inc、.code……
死了,第一个title~~~什么意思,(后来才明白)。问题在哪呢?
俺没什么优点,就是好奇心重。我一定要知道为什么。
网站有个红色的“王爽《汇编语言》论坛”,一点进去什么也没有。接着下载了个pdf的“王爽汇编语言(第二版)”。我想,我对寄存器这么熟(自认为),所以1,2章都不看,结果错了。第三章的内容却似懂非懂,索性倒回去,看第二章寄存器,很奇怪,那晚看到凌晨2点都不困,直到把实验给做了。
接下来不知道多少个夜晚了,1点以后才有睡意,一个星期过去了,第六章还有一点没看完。依照上面的做,无论例子还是作者提出的问题,还是实验,我都先把程序写下来(例子就照抄),然后每个程序都用debug观察。到现在为止,头上的雾水已经越来越淡了,虽然还有很多东西还要深究,路还很长,也不会很长。(先炫耀一下自己的勤奋先,嘿嘿……)
好了,罗嗦这么多。
也不知道自己到底学到多少,只知道有这么一个概念:
数据的存与取,都必需一个地址 [段]x16+[],再者就是汇编指令和伪指令。至于那些什么寻址,和mov、inc、dec~~~~的指令了,当然环境的不同可能另有用途,慢慢来吧。 这里我发现,不同的人有不同的编程习惯,有时候连语法都不一样。
现在还有一点不明白,
assume cs:cedes
codes segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
start: mov ax,cs
mov ss,ax
mov sp,30h
mov bx,0
mov cx,8
s: push cs:[bx]
add bx,2
loop s
mov bx,0
mov cx,8
s0: pop cs:[bx]
add bx,2
loop s0
mov ax,4c00h
int 21t
codes ends
end start
这是一个逆序放数据的程序。
代码段cs与ip有关,可是运行程序以后用debug观察,“dw 0123h,0456h,……”这些数据却在cs:0——cs:f,而不是当前cs:ip的空间,因为它是代码段,存代码的,就是指令,那为什么,“dw …… ”却可以在cs:0 。试过了,无论哪个程序(目前理解的程序)都一样。或许不在cs:0,却在cs:[bx],和那个ip似乎~~~~。ip只是执行指令后+1,+2或者+3,+5。为什么代码段可以存数据?指令对应代码,代码和数据,那么01、23就是指令代码?
再有:
codes segment
:
:
:
codes ends
定义一个段,那是代码段,就是指令,输入的汇编指令里,有ss,ds,还有es,有时候还可以不在前面定义就可以在这里用!why?本来没这么多问题的,写到这里就有点乱了。
不管怎么样,初来乍到,和大家分享,希望那些和我一样正在起步的同志们……,也特别希望老师们帮帮忙,大侠们帮帮忙。
[ lishzh2009 发表于 2010-01-13 19:39 ]
有勇气学这个,强
[url=http://www.uggbootsky.com/classic-cardy-ugg-boots]Classic Cardy Ugg Boots[/url]Classic Cardy Ugg Boots
[url=http://www.uggbootsky.com/classic-tall-ugg-boots]Classic Tall Ugg Boots[/url]Classic Tall Ugg Boots
[url=http://www.uggbootsky.com/classic-short-ugg-boots]Classic Short Ugg Boots[/url]Classic Short Ugg Boots
[url=http://www.uggbootsky.com/ultra-tall-ugg-boots]Ultra Tall Ugg Boots[/url]Ultra Tall Ugg Bo ots
[url=http://www.uggbootsky.com/tall-metallic-ugg-boots]Tall Metallic Ugg Boots[/url]Tall Metallic Ugg Boots
[url=http://www.uggbootsky.com/sundance-ii-ugg-boots]Sundance II Ugg Boots[/url]Sundance II Ugg Boots
[url=http://www.uggbootsky.com/nightfall-ugg-boots]Nightfall Ugg Boots[/url]Nightfall Ugg Boots
[url=http://www.uggbootsky.com/ultra-short-ugg-boots]Ultra Short Ugg Boots[/url]Ultra Short Ugg Boots
[url=http://www.uggbootsky.com/classic-mini-ugg-boots]Classic Mini Ugg Boots[/url]Classic Mini Ugg Boots
[url=http://www.uggbootsky.com/short-metallic-ugg-boots.html]Short Metallic Ugg Boots[/url]Short Metallic Ugg Boots
[url=http://www.uggbootsky.com/ugg-fluff-flip-flop.html ]UGG Fluff Flip Flop[/url]UGG Fluff Flip Flop
[url=http://www.uggbootsky.com/infant-erin-ugg-boots.html]Infant Erin Ugg Boots[/url]Infant Erin Ugg Boots
[url=http://www.uggbootsky.com/bailey-button-ugg-boots.html]Bailey Button UGG Boots[/url]Bailey Button UGG Boots
[ 122633414 发表于 2010-01-15 00:23 ]
今天在上班的时候,用电脑做了一个程序,定义多个段。发现了一个问题。这个问题应该和以上的一样,
assume cs:codesg,ds:datasg,ss:stacksg
datasg segment
dw 0123h,0456h,0789h~~~~~
datasg ends
stacksg segment
dw 0,0,0,0,0,~~~
stacksg ends
:
:
:
:
ends
刚开始dw存放的位置?ds:bx?ss:sp?
跟cs:ip~~~~~
一进入debug用r命令,ds=132d,ss=133d,cs=133d 。程序一开始~~~~~~~?
太晚了,明天继续…………
太晚了,明天
[ release_lag 发表于 2010-01-27 16:48 ]
晕,一楼的发的广告啊???
[ ye547896 发表于 2010-01-28 18:12 ]
???
搞不懂博主的问题! 说的什么意思啊!
是 在代码段里定义了数据 打开 IP还是0 吗?
[ thedaydreamwang 发表于 2010-02-10 01:53 ]
加汕我也是和楼主一样的情况看多了就好了有一个过程的,不要急,汇编是需要慢慢消化的,理论的东西是基础,然后多思考文字背后的东西,中国的文字很有意思需要多揣摩,这样你会懂的更多!!还有有空的时候拿支笔把书中的意思用图形的形式在纸上画出来这样对你很有帮助!!我的经验有限祝你早日成功吧!!