AT&T 彙編移位運算
阿新 • • 發佈:2018-11-16
1.移位乘法
sal destination
sal %c1, destination
sal shifter, destination
第一種格式destination的值向左移1位,這等同於使值乘以2. 線第二種格式把destination的值向左移動CL暫存器中指定的位數。 最後一個版本把destination的值向左移動shifer值指定的位數
.section .data value1: .int 25 .section .text .globl _start _start: nop movl $10,%ebx sall %ebx movb $2,%cl sall %cl,%ebx sall $2,%ebx sall value1 sall $2,value1 movl $1,%eax movl $0,%ebx int $0x80
values1=200 edx暫存器的值為320
2.移位除法
注意整數的符號。通過移位進行除法操作涉及把二進位制體向右移位。但處,當把能數值向右移位時,必須夢對於無符號整數,向右移位產生的空位可以被填充為零、而且不會有任何問題,不本的是,對於帶符號整數,使用零填充高位部分會對負數產生有害的影響。為了解決這個問題,有兩個向右移位指令。SHR指令清空移位造成的空位,所以它只能用於對無符號整數進行移位操作。SAR指令根據整數的符號位,要麼清空,要麼設定移位造成的空位。