求助 有没有大佬告诉我一下这个si对应的是哪个
如题新手上路求告知 按位与 运算 其结果影响标志位 CF、OF、PF、SF和ZF ,不对上面 si 进行影响。 本帖最后由 我的爱是你 于 2020-2-26 21:17 编辑一般测试寄存器是否为空 。如 test si, si si为0则设zf 标志1 jz 跳,否 设zf0 jnz跳。 是这样的,随着内存大小的增加,计算机的寄存器的长度也从8位渐渐到了64位,为了向前适配以及使用较大寄存器的低位,保留了曾经的名字...
所以,是这个样子的 rax->eax->ax->{ah,al},rax是64位的,eax是32位的,ax是16位的,ah是ax的高8位,al是ax的低八位,这里的r是register,e是extend,x是hex,h是high,l是low,同样规则的还有rbx,rcx,rdx
| 63 - 32 | 31 - 16 | 15 - 8 | 7 - 0 |
======================================
. . | AH | AL |
. . | AX |
. | EAX |
| RAX |
======================================
| 63 - 32 | 31 - 16 | 15 - 8 | 7 - 0 |
而rbp->ebp->bp最小只到了16位,同样的还有rsi,rdi,rsp,rip
64位机中还有R8-R19寄存器,引用低位可以使用D(double word 4字节),W(word 2字节),B(byte 1字节)后缀
32位机中从e前缀开始,16位机中从连e前缀都没有开始
页:
[1]