对不起,我在S / O上的时间不长,并且在asm上有一个新的。
我一直在阅读英特尔,Amd和nasm文档,ref.x86asm.net,sandpile.org和wiki.osdev.org。
我能够非常感激的一件事是:
对不起,如果这很明显......
答案 0 :(得分:5)
您可以只汇编一些代码或读取指令集参考。是的,64位操作和访问新寄存器需要REX前缀,这样可以使代码更长。 64位模式下的32位操作保持相同的长度:
89 D8 mov eax, ebx ; normal size 2 bytes
41 89 D8 mov r8d, ebx ; REX prefix to access r8d
48 89 D8 mov rax, rbx ; REX prefix to use 64 bit size
如果只写64位寄存器的低32位,则硬件会发生零扩展。
答案 1 :(得分:0)
基本说明:
66 B8 01 00
我用[BITS 32]或[BITS 64]编译,结果是:
./odoo.py -d db_name -u module_name
两种情况。所以我想至少对于那里来说没有意义。