汇编笔记

1,中括号 []

例:ADD AL , [SI] 
其中,[SI] 表示寄存器间接寻址。
也就是说,与AL中内容相加的加数,不是SI寄存器的内容,而是以SI的内容作为地址指针的内存操作数。
假设SI的内容是1234H,这条加法指令,不是将1234H加到AL里(也加不了,数据类型不对),而是以1234H作为地址,从内存的数据段(DS所指)中,段内偏移地址为1234H的那个内存单元中取出一个字节的数据来,加到AL中。
例:MOV [20H], AL,
是将AL中的内容传送到内存里的一个单元中去。这个单元的有效地址就是[20H]。
这里,加了方括号的20H,不是运算所用的数据,而是数据的地址。

注:8086汇编中,能加方括号的只有4个寄存器:SI, DI, BX, BP。

 

2 “$”指定当前地址

例:list db 1,2,3,4,5

listSize=($-list);注:db表示一个字节,所以相减之后得到list长度,但有的dw(双字节),dd(四字节),要相应的除以2,4.

3,算术运算符(+-*/),

注:算术运算符只能对常亮进行运算,当进行运算的量为变量时,要使用汇编语句,SUB ADD DIV MUL。

4,算术运算指令

1)inc 加一指令
例:inc Count :Count=Count+1

2)dec 减一指令
例:dec Count :Count=Count-1;

3)shr 移位指令,右移,除(无符号数)
例:shr  ebx ,1; ebx=ebx/2

4)shl 移位指令 左移,乘 (无符号数)
例:shl ebx ,1;ebx=ebx*2

5)sar 移位指令 右移, 除(有符号数)

6)sal 移位指令 左移 ,乘(有符号数)

5, .xor 亦或操作

xor eax,eax  ;将eax赋值为0,与mov eax ,0等效,但xor操作更快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值