问一下 i386 汇编中的 push 和 pop 指令

2016-10-14 15:14:07 +08:00
 likeunix
hello,everyone
我在看《深入理解操作系统》在第三章习题 3.2 中有一道题如下:
对于下面汇编代码的每一行,根据操作数,确定适当的指令后缀
push $0xFF
答案上写的是 pushl ,我觉得应该是 pushb 因为立即数是 8 位的啊,为什么答案是 pushl ?
2292 次点击
所在节点    Linux
2 条回复
enenaaa
2016-10-14 15:48:37 +08:00
对 AT&T 汇编 不熟悉。 但是 32 位系统一般都是双字存取,不在栈上存单字节,或双字节。
dearmymy
2016-10-14 19:28:18 +08:00
push 立即数的话 都会默认为双字
而且有 pushb 的指令嘛?不是不能 push al 么,
之后可以 push ax , push eax 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/312797

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX