pushb 0x01 指令执行后
esp应该是减少1,还是减少4呢?
是下面两种情况的哪种呢。
----
push 组合有以下:
push word / double word / quad word
若 push 0x1 (1 byte imme) 这种情形的话:
0x1 会被“带符号扩展至 word / double word /quad word”
至于何时为 word / double word /quad word?
生成的 push opcode 不变,会根据处理器当前的模式(16/32/64)或者定义的 stack segment descriptor 的 D/B 位而自动转化
[ 本帖最后由 mik 于 2007-10-31 22:28 编辑 ] 原帖由 andyzn 于 2007-10-31 23:23 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
象这样push byte al
不行!push al是错误的指令。 根本没有这个指令形式 原帖由 andyzn 于 2007-10-31 23:40 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
呵呵,知道了
这个是AT&T的语法
hoho
不是 AT&T 与 Intel 语法区别的问题,是 push 这条指令不支持操作数为 8 位寄存器的问题 4-->code32
2-->code16 原帖由 folklore 于 2007-11-3 20:26 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
4-->code32
2-->code16
push 0x1 这条指令是不依赖编译模式的(.code32 / .code15)
页:
[1]