第5~8章知识汇总

第五章 [BX]和loop指令

[BX]:bx是一个间接寻址单元,与[0]类似,它可以将一个内存单元的内容送入寄存器中,如mov ax,[bx],[bx]被看作偏移地址,默认的段地址为ds。寄存器如果用ax,则内存单元的长度为2,如果用al,则内存单元的长度为1。

loop:即循环,使用标号以及寄存器cx可以将程序进行循环操作,如

mov cx,3

s:add ax,1

loop s

即可认为s标记的指令被执行了3次

嵌套循环可以用push和pop来保持外层的cx不被内部的cx干扰,如

mov cx,3

s:push cx

add ax,3

mov cx,2

s1:sub ax,1

loop s1

pop cx

loop s

这就是嵌套循环,sub指令总共执行了6次

第六章、包含多个段的程序

db:每个数据占一个字节单位

dw:每个数据占一个字单位即两个字节单位

我们使用不同的段,可以将数据和程序分开存放,让程序更加整洁,并且解决了程序一个段所需空间不能超过64kb的问题.

同时要记住,一个段内的数据所占的空间为 ((N+15)/16)×16,且(N+15)/16取大于等于它的最小整数,原理如下

在8086CPU架构上,段是以paragraph(16-byte)对齐的。程序默认以16字节为边界对齐,所以不足16字节的部分数据也要填够16字节。“对齐”是alignment,这种填充叫做padding。16字节成一小段,称为节

 第七章 更灵活的定位内存地址的方法

两个指令

and:逻辑与,同为1则为1

or:逻辑或,有1则为1

大小写转化,大写小写ASCII相差20h,即32,大写转小写加上32,小写转大写加上32

与bx功能相近寄存器:si,di

idata:表示常量

内存单元可以用[bx+idata]、[bx+si]、[bc+si+idata]等方式表示。

第八章 数据处理的两个基本问题

与bx功能相近的寄存器:si、di、bp

div指令:除法运算

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

被除数:默认放在ax或dx和ax中,如果除数为8位,被除数则为16位,默认放在ax寄存器中;如果除数为16位,被除数则为32位,在dx和ax中存放,dx放高16位、ax放低16位

你可能感兴趣的:(第5~8章知识汇总)