. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  66页那个"段的纵述"用到的例子,又是代码段又是数据段又是栈段  [待解决] 回复[ 12次 ]   点击[ 638次 ]  
helloworld
[帖 主]   [ 发表时间:2007-10-25 01:42 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:6
注册日期:2007-10-20 14:34
我想问问,这个代码是不是一次性的?后面有几条入栈的语句将这一段内存的开始那几块都修改了,第二次再执行的话岂不是执行不了?
helloworld
[第1楼]   [ 回复时间:2007-10-25 01:55 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:6
注册日期:2007-10-20 14:34
哦 应该没事 它只push了两次,应该是刚好将倒数二行的代码给覆盖掉了,第二次执行的时候可以执行到“push bx”这一行就执行不下去了,因为存放[pop ax]和[pop bx]此处的内存已被第一次运行时给push掉了
sunshine
[第2楼]   [ 回复时间:2007-10-25 09:20 ]   [引用]   [回复]   [ top ] 
荣誉值:106
信誉值:0
注册日期:2007-06-26 15:10
认真看书呵呵
shanguianti
[第3楼]   [ 回复时间:2007-11-02 09:10 ]   [引用]   [回复]   [ top ] 
荣誉值:19
信誉值:0
注册日期:2007-10-31 16:24
代码段是什么?就是CS所指向的内存基础地址开始的某些连续的内存单元。
数据段是什么?就是DS所指向的内存基础地址开始的某些连续的内存单元。
栈段又是什么?就是SS所指向的内存基础地址开始的某些连续的内存单元。
当CS、DS、SS所指向的内存单元重复的时候,那这一部分的段就可以认为既是代码段、数据段又是栈段。
也许说的不够准确,关键要看个人的理解。
suzukilt
[第4楼]   [ 回复时间:2007-11-14 22:18 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-10-29 22:20
再执行就不是原来的指令了,呵呵
pen.11
[第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所在的位置!你看是这样分析的吗?
dongxf
[第6楼]   [ 回复时间:2008-06-21 01:00 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:2
注册日期:2008-06-17 13:34
一部分的段既是代码段、数据段又是栈段,这种程序跑的起来吗? 乱套了吧
lonelyboy
[第7楼]   [ 回复时间:2008-06-24 12:41 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2008-06-09 19:12
一部分的段既是代码段、数据段又是栈段,这种程序跑的起来吗? 乱套了吧

——————————————————————————————————————
是啊,我和楼上的关点也是一样的,就是搞不明白,它还能跑起来,都被修改的不成样了。<br>如果程序大点,改的多点,说不定有很多的不可预知的事情。
a313446264
[第8楼]   [ 回复时间:2008-06-27 21:34 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:8
注册日期:2008-06-20 21:12
回复楼上的:我觉得他举这个例子,只是为了说明代码段,数据段,栈段的意思而已,实际上有时也可以用这种方式实现一些特殊的功能~~
lonelyboy
[第9楼]   [ 回复时间:2008-06-28 19:41 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2008-06-09 19:12
知道啊,不知道"实现一些特殊的功能",是哪些功能,想学习一下。才学汇编。请指点
a313446264
[第10楼]   [ 回复时间:2008-07-01 21:33 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:8
注册日期:2008-06-20 21:12
我也刚学汇编,比如说一些代码只想只想执行一次,而其他的想执行的不止一次,或者是有一部分相同,另外的不相同,或者是多种功能的选择,等,就可以用上面那种方法重写代码,然后执行··这是我个人认为的,有感而发,并不是在什么书上看见的,不对请见谅,我觉得汇编是系统低层的东西,虽然有点枯燥,但没什么限制,不像高级语言有那么多的规范,相对灵活,看你怎么构思了,实际上有很多的好程序都是用汇编写的
revenge
[第11楼]   [ 回复时间:2008-08-14 09:06 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-08-13 04:35
各段可以允许重叠
kawaguchi
[第12楼]   [ 回复时间:2008-08-21 13:18 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:2
注册日期:2007-08-20 03:11
段可以重新定义,用后也可以销毁。
只要在源码上指明
使用前:ASSUME CS:CODE, SS:STACK
使用后:ASSUME CS:CODE, SS:NOTHING
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved