|
主题 : : 66页那个"段的纵述"用到的例子,又是代码段又是数据段又是栈段 [待解决] |
回复[ 12次 ]
点击[ 638次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2007-10-25 01:42 ]
[引用]
[回复]
[ top ] | |
荣誉值:10
信誉值:6
注册日期:2007-10-20 14:34 |
我想问问,这个代码是不是一次性的?后面有几条入栈的语句将这一段内存的开始那几块都修改了,第二次再执行的话岂不是执行不了? | | |
|
|
|
|
[第1楼]
[ 回复时间:2007-10-25 01:55 ]
[引用]
[回复]
[ top ] | |
荣誉值:10
信誉值:6
注册日期:2007-10-20 14:34 |
哦 应该没事 它只push了两次,应该是刚好将倒数二行的代码给覆盖掉了,第二次执行的时候可以执行到“push bx”这一行就执行不下去了,因为存放[pop ax]和[pop bx]此处的内存已被第一次运行时给push掉了 | | |
|
|
|
|
[第2楼]
[ 回复时间:2007-10-25 09:20 ]
[引用]
[回复]
[ top ] | |
荣誉值:106
信誉值:0
注册日期:2007-06-26 15:10 |
|
|
|
|
|
[第3楼]
[ 回复时间:2007-11-02 09:10 ]
[引用]
[回复]
[ top ] | |
荣誉值:19
信誉值:0
注册日期:2007-10-31 16:24 |
代码段是什么?就是CS所指向的内存基础地址开始的某些连续的内存单元。
数据段是什么?就是DS所指向的内存基础地址开始的某些连续的内存单元。
栈段又是什么?就是SS所指向的内存基础地址开始的某些连续的内存单元。
当CS、DS、SS所指向的内存单元重复的时候,那这一部分的段就可以认为既是代码段、数据段又是栈段。
也许说的不够准确,关键要看个人的理解。 | | |
|
|
|
|
[第4楼]
[ 回复时间:2007-11-14 22:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2007-10-29 22:20 |
|
|
|
|
|
[第5楼]
[ 回复时间:2008-03-28 20:58 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-03-12 20:06 |
为什么说设置CS=1000H, IP=0,这段代码将得到执行?10000H-1001FH刚好是32个单元16字,而这段代码刚好站16字,所以CS:IP=1000:0 刚好就是mov ax,1000H所在的位置!你看是这样分析的吗? | | |
|
|
|
|
[第6楼]
[ 回复时间:2008-06-21 01:00 ]
[引用]
[回复]
[ top ] | |
荣誉值:6
信誉值:2
注册日期:2008-06-17 13:34 |
一部分的段既是代码段、数据段又是栈段,这种程序跑的起来吗? 乱套了吧 | | |
|
|
|
|
[第7楼]
[ 回复时间:2008-06-24 12:41 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2008-06-09 19:12 |
一部分的段既是代码段、数据段又是栈段,这种程序跑的起来吗? 乱套了吧
——————————————————————————————————————
是啊,我和楼上的关点也是一样的,就是搞不明白,它还能跑起来,都被修改的不成样了。<br>如果程序大点,改的多点,说不定有很多的不可预知的事情。 | | |
|
|
|
|
[第8楼]
[ 回复时间:2008-06-27 21:34 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:8
注册日期:2008-06-20 21:12 |
回复楼上的:我觉得他举这个例子,只是为了说明代码段,数据段,栈段的意思而已,实际上有时也可以用这种方式实现一些特殊的功能~~ | | |
|
|
|
|
[第9楼]
[ 回复时间:2008-06-28 19:41 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2008-06-09 19:12 |
知道啊,不知道"实现一些特殊的功能",是哪些功能,想学习一下。才学汇编。请指点 | | |
|
|
|
|
[第10楼]
[ 回复时间:2008-07-01 21:33 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:8
注册日期:2008-06-20 21:12 |
我也刚学汇编,比如说一些代码只想只想执行一次,而其他的想执行的不止一次,或者是有一部分相同,另外的不相同,或者是多种功能的选择,等,就可以用上面那种方法重写代码,然后执行··这是我个人认为的,有感而发,并不是在什么书上看见的,不对请见谅,我觉得汇编是系统低层的东西,虽然有点枯燥,但没什么限制,不像高级语言有那么多的规范,相对灵活,看你怎么构思了,实际上有很多的好程序都是用汇编写的 | | |
|
|
|
|
[第11楼]
[ 回复时间:2008-08-14 09:06 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-08-13 04:35 |
|
|
|
|
|
[第12楼]
[ 回复时间:2008-08-21 13:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:2
注册日期:2007-08-20 03:11 |
段可以重新定义,用后也可以销毁。
只要在源码上指明
使用前:ASSUME CS:CODE, SS:STACK
使用后:ASSUME CS:CODE, SS:NOTHING | | |