code:lshift - ikarishinjieva/unixV6-code-analyze-chs GitHub Wiki
- 进行双字长数据的位移,返回位移结果(不改变源数据)
- 共传入两个参数,设为 nump , bits
- nump : 指向欲进行操作的双字长数据
- bits : 进行位移的位数
- 若为正数,向左位移
- 若为负数,向右位移
- 返回 位移结果的低字节
1408 /* ------------------------- */
1409 .globl _lshift
1410 _lshift:
1411 mov 2(sp),r1
1412 mov (r1)+,r0
- nump → R1
1413 mov (r1),r1
1414 ashc 4(sp),r0
- 数据高字节 → R0
- 数据低字节 → R1
1415 mov r1,r0
- 进行位移,位移位数为 bits
1416 rts pc
- 返回值 置为 位移结果的低字节
1417