; mp_bit = 30
; mp_nail = 32 - mp_bit
; mp_mask = 3fffffffh ;base 30bit 28~30
; mp_limb_t
; mpn_rshift (mp_ptr rp, mp_srcptr up, mp_size_t n, unsigned int cnt)
; assert (n >= 1);
; assert (cnt >= 1);
; assert (cnt < gmp_limb_bits);
align 16
mpn_rshift:
label .cp dword at esp+4
label .ap dword at esp+8
label .n dword at esp+12
label .cnt dword at esp+16
label .tnc dword at esp-4
mov [esp-4 ],esi
mov [esp-8 ],edi
mov [esp-12],ebx
mov [esp-16],ebp
mov edi,[.cp]
mov esi,[.ap]
mov ebx,[.n]
mov ecx,[.cnt] ;4
mov [.tnc],mp_bit ;30
sub [.tnc],ecx ;tnc=26
xor eax,eax
.loop:
mov ebp,[esi+ebx*4-4]
mov ecx,[.cnt]
mov edx,ebp
shr edx,cl
and edx,mp_mask
or eax,edx
mov [edi+ebx*4-4],eax
mov eax,ebp
mov ecx,[.tnc]
shl eax,cl
and eax,mp_mask
sub ebx,1
jnz .loop
shr eax,cl
mov esi,[esp-4 ]
mov edi,[esp-8 ]
mov ebx,[esp-12]
mov ebp,[esp-16]
ret 16
;---------------------------
; ==|== ==...== == == |====
; hsb lsb
;---------------------------
align 16
mpn_lshift:
label .cp dword at esp+4
label .ap dword at esp+8
label .n dword at esp+12
label .cnt dword at esp+16
label .tnc dword at esp-4
mov [esp-4 ],esi
mov [esp-8 ],edi
mov [esp-12],ebx
mov [esp-16],ebp
mov edi,[.cp]
mov esi,[.ap]
mov ebx,[.n]
mov ecx,[.cnt] ;4
mov [.tnc],mp_bit ;30
sub [.tnc],ecx ;tnc=26
lea esi,[esi+ebx*4]
lea edi,[edi+ebx*4]
neg ebx
xor eax,eax
.loop:
mov ebp,[esi+ebx*4]
mov ecx,[.cnt] ;4
mov edx,ebp
shl edx,cl
or edx,eax
and edx,mp_mask
mov eax,ebp
mov [edi+ebx*4],edx
mov ecx,[.tnc]
shr eax,cl
add ebx,1
jnz .loop
mov esi,[esp-4 ]
mov edi,[esp-8 ]
mov ebx,[esp-12]
mov ebp,[esp-16]
ret 16
java左 右移運算子
左移運算子,num 1 相當於num乘以2 右移運算子,num 1 相當於num除以2 比如num是40 10進製 對應的二進位制為 101000 2的5次方1 2的4次方4 2的3次方1 2的2次方0 2的1次方0 2的0次方0 二進位制轉換為十進位制方法原始方法 左移一位 左移一位是相對於二進位...
C51中左右移運算
彙編 1.對於51微控制器 rlc a 即將累加器acc中內容左移1位,最低位被cy原始值替代,最高位移入進製標誌cy 中,同理還有rrc a。具體使用 mov a,0ffh clr c rlc a 2.對於8086 1 左移 shl sal dst cnt 移位時運算元的最低位將移入0,最高位移入...
數碼的左右移位
學習三種移位方法後的總結 邏輯移位 符號位也參與移動,簡單了當進行移位 移位後產生的空位補零。被擠出去的一般放入cf 進製標誌 標誌位,如果沒有可以無視。算術移位 在計算時發生的移位,操作物件是帶符號資料,需要考慮符號位。在移位時移出去的位數直接丟棄,符號位不變。為了方便檢視直接列出乙個更適合記憶的...