第四周笔记
- 算数运算 add sub imul/mul idiv/div
asm
mov ax, 2
mov bx, 3
imul ax, bx ; ax = ax * bx = 2*3 = 6 两个有符号的数乘法,可能溢出, OF=0, CF=0mov ax, 1234h
mov bx, 100h
imul ax, bx ; 123400h不能被保存到ax中,截断,砍掉超出16位的部分
; ax=3400h, OF=1, CF=1asm
mov ax, 2
mov bx, 3
mul bx ; ax * bx = dx,ax
;dx=0000h,ax=0006h 16位*16位- 二进制运算 |C语言|汇编语言| |-|-| |
&|and| |||or| |^|xor| |~|not| |<<|shl| |>>|shr| |循环左移函数_rotl()|循环左移指令rol,带进位的循环左移指令rcl| |循环右移函数_rotr()|循环右移指令ror,带进位的循环右移指令rcr|