a89361461 发表于 2011-2-14 16:06:47

关于伪指令assume的问题。

本帖最后由 a89361461 于 2011-2-14 16:07 编辑

为什么用汇编语言写程序,开头都要用assume与相关的段寄存器关联起来。关联起来有什么作用呢?
如果不关联又会怎样呢?

china0008 发表于 2011-2-14 16:10:17

编译器就是这样规定的,编译器通过这个信息初始化cs的值。 入门阶段知道这个就可以了,不需要深究。学的多了以后,自然就明白了。

仰望天上的光 发表于 2011-2-15 21:10:14

为什么用汇编语言写程序,开头都要用assume与相关的段寄存器关联起来。关联起来有什么作用呢?
如果不关联 ...
a89361461 发表于 2011-2-14 16:06 http://fishc.com/dz/images/common/back.gif
其实你可以试验下,
assume cs:code
是一定要写的,但是,ds和ss可以不写
ds不写的坏处的你没法用ds段中的变量。不过王爽的汇编书上根本就没有用变量,所以可以不写。

小甲鱼 发表于 2011-2-16 16:42:37

在PE中各个数据放在不同的区块里边的,ASSUME可以帮助编译器更好的存放这些不同的区块~

a89361461 发表于 2011-2-16 17:55:11

回复 4# 小甲鱼


   不懂 PE 是什么 ,:(

小甲鱼 发表于 2011-2-16 18:14:57

可执行文件,EXE,COM,DLL都是遵照PE格式编译的~要不windows怎么知道哪些是数据哪些是代码哪些是资源?肯定有一个规范的~

vanentu 发表于 2015-5-27 05:07:48

学的多了以后,自然就明白了。
页: [1]
查看完整版本: 关于伪指令assume的问题。