青岛彭于晏 发表于 2020-2-26 20:25

求助 有没有大佬告诉我一下这个si对应的是哪个

如题新手上路求告知

我的爱是你 发表于 2020-2-26 21:09

按位与 运算 其结果影响标志位 CF、OF、PF、SF和ZF   ,不对上面 si 进行影响。

我的爱是你 发表于 2020-2-26 21:15

本帖最后由 我的爱是你 于 2020-2-26 21:17 编辑

一般测试寄存器是否为空 。如 test si, si   si为0则设zf 标志1 jz 跳,否 设zf0 jnz跳。

飞畅 发表于 2020-2-26 21:42

是这样的,随着内存大小的增加,计算机的寄存器的长度也从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]
查看完整版本: 求助 有没有大佬告诉我一下这个si对应的是哪个