程序入口问题
end startstart 就是入口cs:ip指向 入口执行第一条命令没问题
请问cs在哪呢
比如
assumecs:code
code segment
dw xxx(数据)
start:
xxx
code ends
end start
cs:ip指向start ,而这时想访问数据 就用cs:
是不是 cs就指向code,code的值就是cs的值呢
我的理解是:
入口被设定 系统就知道是代码段code就自动是 cs(段地址)然后通过ip跳过数据指向入口
不用人为的
mov ax,code
mov cs,ax
而想其他段名 指向段寄存器就必须用汇编指令完成 不能像cs一样自动指向
这样理解对嘛{:5_104:}
来人呀来人呀 本帖最后由 jackz007 于 2021-3-11 14:45 编辑
汇编语言规定,在默认情况下,代码段的开头一律是 CS:0。除非有特殊要求,可以使用 org 伪指令指定起始偏移值。
DOS 下的每个 exe 文件都有一个文件头,记载了 exe 文件内存映像的所有信息,其中就包含了程序入口的 CS : IP 以及 SS : SP 等数据, 操作系统在加载 exe 文件的过程中,会根据这些数据初始化内存及所有相关的寄存器,最后,才把控制权交给 exe。 jackz007 发表于 2021-3-11 14:39
汇编语言规定,在默认情况下,代码段的开头一律是 CS:0。除非有特殊要求,可以使用 org 伪指令指定 ...
所以我的理解对了嘛。。
大佬你说的太高深了{:5_104:} 万千只cnm 发表于 2021-3-11 14:50
所以我的理解对了嘛。。
大佬你说的太高深了
不是我讲的太高深,是你自己懂的太少,建议你参考一下这篇文章,一点都不长,只有 2 页纸。
http://www.doc88.com/p-3197688685997.html jackz007 发表于 2021-3-11 15:09
不是我讲的太高深,是你自己懂的太少,建议你参考一下这篇文章,一点都不长,只有 2 页纸。
...
okok{:5_104:} jackz007 发表于 2021-3-11 15:09
不是我讲的太高深,是你自己懂的太少,建议你参考一下这篇文章,一点都不长,只有 2 页纸。
...
请问大佬 第四步什么意思呀
{:5_104:}/Users/solitary/Desktop/截屏2021-03-11 下午8.36.07.png
这里的起始段值指的是 申请返回的 段地址+10h 嘛
然后与重定位表项后两个字节相加 ,前两个字节相当于偏移地址 -->新的物理地址
这个地址处的字正是需重定位的字,这个字处再加上起始段值
这句话怎么理解呀 让这个字的内容 add 起始段值嘛 重定位表 那是重定位项,如果代码中出现绝对地址
102E:0010 CALL182E:0013
. . . . . .
102E:1023 JMP 182E : 1024
这些绝对地址就属于重定位项, 在代码装入内存的时候,需要根据装入地址动态形成。 jackz007 发表于 2021-3-11 22:37
那是重定位项,如果代码中出现绝对地址
这些绝对地址就属于重定位项, 在代码装入 ...
现在还不懂{:5_104:}
等我以后回过头来再看
页:
[1]