彙編語言中的邏輯右移(LSR)是將各位依次右移指定位數,然後在左側補0,算術右移(ASR)是將各位依次右移指定位數,然後在左側用原符號位補齊。
比如,在彙編語言中,對於算術右移,如果最高位為1,則補1,否則補0, 如將10000000算術右移7位,應該變成11111111,而邏輯右移7位,則不考慮符號位,變為00000001,這點就是算術右移和邏輯右移的區別。
在彙編中,可以用算術右移來進行有符號數據的除法。把一個數右移n位,相當於該數除以2的n次方。
比如,彙編語言中的:
ASR R3,1
其意義相當於R3=R3/2