2.汇编中的算数运算指令

 

上周我的学习进度较快,看了很多的理论知识,没有进行太多的实践,所以先把理论知识进行一个总结,然后本周在将书中的实验进行实践。

1.定义多个段的方法:

1)对于不同的段,要有不同的段名

2)段短地址的引用:段名就相当于一个标号,它代表了段地址

3)“代码段”、“数据段”、“栈段”完全是我们安排的

2.CPU到底如何处理我们定义的段中的内容,是当指令执行,当作数据访问,还是当作栈空间,完全是靠程序中具体的汇编指令,和汇编指令对CS:IP、SS:SP、DS等寄存器设置来决定的。

3.(1)“and”指令:逻辑与指令,按位进行与运算。

通过该指令可将操作对象的相应位设为0,其他位不变                         (2)“or”指令:逻辑或指令,按为进行或运算。

通过该指令可将操作对象的相应位设为1,其他位不变

4.我们可以在汇编程序中,用‘……’的方式致命数据是以字符的形式给出的,编译器将把它们转化为相对应的ASCLL码。

5.可以用[idata]、[bx]、[bx+idata]、[bxsi]、[bx+idata+si]来表示一个内存单元。

6.一般来说,在需要暂存数据的时候,我们都应该使用栈。

7.寄存器只能以这4种组合出现:bx和si、bx和di、bp和si、bp和di

8.在机器指令中要指明,指令进行的是字操作还是字节操作。

1)通过寄存器名指明要处理的数据的尺寸。(如:ax、al)

2)在没有寄存器名存在的情况下,用操作符X ptr指明内存单元的长度,X在汇编指令中可以为word或byte。

9.push指令只对字进行操作

10.div是除法指令,使用div做除法的时候应注意以下问题:

1)除数:有8位和16位两种,在一个reg或内存单元中

2)被除数:默认存放在AX或DX和AX中,如果除数为8位,则被除数为16位,默认存放在AX中;如果除数为16位,被除数则为32位,在DX和AX中存放,DX存放高16位,AX存放低16位。

3)结果:如果除数为8位,则AL存储除法操作的商,AH存储除法操作的余数;如果除数为16位,则AX存储除法操作的商,DX存储除法操作的余数。

11.db和dw分别定义字节型数据和字型数据,dd用来定义dword(double word双字型数据。

 

 

 

 

posted @ 2015-05-27 22:46  D_ZH0u  阅读(423)  评论(0编辑  收藏  举报