- 主题:为什么不允许 mov ax, [sp+4] 这样的写法
你这是086?
最原始的x86(16bit)指令集中寄存器的用法还非常特殊化,看了下16b的ModR/M编码,
就是没有[sp+disp]
32b以后又增加了SIB byte,在寻址上寄存器的用法已经很通用化了
【 在 hgoldfish 的大作中提到: 】
: 我在 debug 里面输入
: mov ax, [sp+4]
: 提示出错,但是输入
: ...................
--
FROM 107.204.171.*
pascal程序员从来不挑调用约定
【 在 hgoldfish 的大作中提到: 】
: 对了,当年 c 调用约定应该没啥用吧?
: 那会儿流行 turbo pascal 和 turbo c/c++,这两个编译器用的啥调用约定?
: pascal 还是 fastcall? 当年的程序员会特别挑哪个吗?我猜是 fastcall ?
: ...................
--
FROM 107.204.171.*
其他语言生成的lib不是pascal程序员能决定的
而且绝大多数程序员不去做跨语言编程的
少部分程序员会把相应的库封装成适合该语言调用的库
比如做一个pascal的unit去调用c语言的库
其他pascal程序员调用这个unit就行了
【 在 hgoldfish 的大作中提到: 】
: 为啥?pascal 程序员也需要调用其它语言生成的 .lib 吧?
--
FROM 107.204.171.*
8086哪里来的16个寄存器
【 在 hgoldfish 的大作中提到: 】
: 也没那么复杂。假设这条指令是 16 位,大概就是前面几位 opcode 是 mov,中间几个位代表寄存器啥的。
: 按 8086 正常的编码,应该会给四个位是寄存器名称,可以容纳 16 个寄存器名。
--
FROM 107.204.171.*