码迷,mamicode.com
首页 > 编程语言 > 详细

汇编语言学习笔记(7)——更灵活地定位内存

时间:2015-06-25 12:27:37      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:

1、and指令

逻辑与指令,按位进行与运算,例如:
    mov al,01100011B
    and al,00111011B

计算后的al结果为:00100011B

计算过程:

 0  1  1  0  0  0  1  1   B
 0  0  1  1  1  0  1  1   B
----------------------------
 0  0  1  0  0  0  1  1   B

可以看出,逻辑与运算两个二进制的思路是,设1为真,0为假,则按位对应两个数,同一位置上下两个值同为真则结果为真(1),同为假则结果为假(0),一真一假结果为假(0);用更简单的结论就是:逻辑与运算中,同一位置只有同为真结果才为真,其它情况均为假。 应用场景:例如,如果要将某个二进制数的第2位(从第0位数起)变为0,则让它与11111011B做逻辑与运算

2、or指令

逻辑或指令,按位进行或运算,例如:
    mov al,01100011B
    or  al,00111011B    

计算后的al结果为:01111011

计算过程:

 0  1  1  0  0  0  1  1   B
 0  0  1  1  1  0  1  1   B
----------------------------
 0  1  1  1  1  0  1  1   B

可以看出,逻辑或运算的思路是:相同位置只要有一个为真则结果为真,其他情况结果为假。应用场景:例如,如果要将某个二进制数的第2位(从第0位数起)变为1,则让它与00000100B做逻辑或运算

3、汇编中,我们可以用一对单引号包裹的形式来表示数据是以字符的形式给出的,如:

dw ‘fork word‘
mov ‘a‘

4、在汇编语言中,可以用[bx+idata]的格式表示一个内存单元,例如:

mov ax,[bx+200]

此指令的数学表达式为:

(ax)= ((ds)*16 + (bx)+200)

从上面的示例中我们可以知道,其本质是将内存单元的偏移地址上加了一个常量值。

5、SI和DI在8086CPU中和bx功能相近的寄存器,即都可以存放内存偏移地址。

6、还可以用[bx+si]或[bx+di]的格式来标示内存偏移地址。

7、同样可以使用[bx+si+idata]或[bx+di+idata]的格式表示内存单元偏移地址。

汇编语言学习笔记(7)——更灵活地定位内存

标签:

原文地址:http://blog.csdn.net/hjb2722404/article/details/46623821

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!