目前应该是有很多小伙伴对于汇编语言加中括号表示什么方面的信息比较感兴趣,现在小编就收集了一些与汇编语言加中括号表示什么相关的信息来分享给大家,感兴趣的小伙伴可以接着往下看,希望会帮助到你哦。
一般说来,加方括号 [ ] 表示一种间接的取操作数方式,有点类似于C语言中的指针概念
第一条指令 ADD AL , [SI] 中。
[SI] 表示寄存器间接寻址
也就是说,与AL中内容相加的加数,不是SI寄存器的内容。
而是以SI的内容作为地址指针的内存操作数
假设SI的内容是1234H,这条加法指令,不是将1234H加到AL里(也加不了。
数据类型不对),而是以1234H作为地址,从内存的数据段(DS所指)中。
段内偏移地址为1234H的那个内存单元中取出一个字节的数据来,加到AL中
同样的,第二条指令 MOV [20H], AL。
是将AL中的内容传送到内存里的一个单元中去
这个单元的有效地址就是[20H]
这里,加了方括号的20H,不是运算所用的数据。
而是数据的地址
===================对问题补充的回复:AL是不可能加方括号的
8086汇编中,能加方括号的只有4个寄存器:SI, DI, BX, BP常数也可以加方括号,比如 [020H]另外。
变量名可以加方括号,但与上面两种情况不同,加了方括号的变量名。
意义不变
至于方括号内,可以出现BX+DI,SI+2这样的表达式。
这是一些不同的寻址方式
SI 是寄存器寻址[SI]是寄存器间接寻址[SI+2]是相对的寄存器间接寻址,又称直接变址寻址,它也可以写成2[SI]这样的形式[BX+SI]是基址变址寻址。
1也可写成[BX][SI][BX+SI+20H]是相对的基址变址寻址,可以写成20H[BX][SI]之类的形式,将20H换成变量名也可以
本文到此结束,希望对大家有所帮助。