1 mul乘
assume cs:code
code segment
main proc
mov ax,5
mov bx,2
mul bx
MOV AX,4C00H
INT 21H
main endp
start:call main
code ends
end start
mul后写一个寄存器,另外的一个自动调用ax,结果存到ax中,如果大于16位则存在DX:AX中。
2 div除
assume cs:code
code segment
main proc
mov ax,5
mov bx,2
div bx
MOV AX,4C00H
INT 21H
main endp
start:call main
code ends
end start
ax存储商,dx存储余数。
3 位运算
xor异或 两个操作数,放到第一个操作数里
and 与 两个操作数,放到第一个操作数里
or或 两个操作数,放到第一个操作数里
not取反 一个操作数
4 移位指令
在汇编中移位命令有很多,左移右移都有不同的类型。
左移
左移有 SHL(逻辑左移)、SAL(算术左移) ,两者都是左移,都使用 0 来填充移位产生的空位。两者没有区别。
左移还有 ROL(循环左移)、RCL(带进位循环左移),循环左移,顾名思义循环着左移的;带进位的循环左移,即移位产生的 “ 溢出 ” 位移入 CF 中,原 CF 中的值移入数中。
右移
右移有 SHR(逻辑右移)、SAR(算术右移),算术右移产生的位置使用符号位填充;逻辑右移使用 0 填充。
右移还有 ROR(循环右移)、RCR(带进位循环右移),类似于左移的循环与带进位循环。