汇编实验第六到八章总结

第六章

一(1) 代码和数据在同一个段内程序框架


(2) 伪指令end用法小结

二.dw=define word 即使用dw定义字型数据(数据之间以逗号分隔)dw 既可定义数据,也可以说用它开辟内存空间

db定义字节类型变量,一个字节数据占1个字节单元,读完一个,偏移量加1

dw定义字类型变量,一个字数据占2个字节单元,读完一个,偏移量加2

dd定义双字类型变量,一个双字数据占4个字节单元,读完一个,偏移量加4

三.将数据、代码、栈放在不同的段中,可以使程序结构清晰易懂,对于8086而言,可以使用多个栈,解决长度超64kb的限制问题

访问段中的数据,通过地址(段地址和偏移地址),段名即代表一个标号,代表段地址。

用伪指令 assume 将 cs、ds、ss 分别和 code、data、stack 段相连之后,CPU 也没并没有将对应的段和段寄存器相连接,因为 assume 只是伪指令

四.① 怎么找一段安全、可用的内存空间?

在源程序中预留所需空间,

汇编时由系统分配

② 内存空间找到后,如何处理才能当作栈使用?

在源程序中设置sssp

ss:sp存放初始栈顶位置

第七章

一:and和or指令。

  and指令:逻辑与指令,按位进行与运算。通过该指令可将操作对象的相应位设为0,其他位不变。

  or指令:逻辑或指令,按位进行或运算。通过该指令可将操作系统的相应位设为1.

二:ASCII码。一种编码方案,是在计算机系统中通常被采用的的,所谓编码方案,就是一套规则,它约定了用什么样的信息来表示现实对象。

  一个文本编辑过程中,就包含着按照ASCII编码规则进行的编码和解码。

三:以字符形式给出的数据,用‘......’的方式知名数据是以字符的形式给出的。编译器将它们转化为相应的ASCII码。

四:大小写转换。小写字母的ASCII码值比大写字母的ASCII码值大20H。

五:【bx+idata】表示一个内存单元,它的偏移地址为(bx)+idata(bx中的数值加上idata)

六:si和di是8086CPU中和bx功能相近的寄存器,si和di不能分成两个8位寄存器来使用。

  【bx+si】和【bx+di】的含义相似,表示一个内存单元,它的编译地址为(bx)+(si)即bx中的数值加上si中的数值。

 

 第八章

1、汇编指令中操作数类型

2、在8086中,可用于表示内存偏移地址的寄存器只有:bx,si,di,bp

1)这些寄存器可以单个出现在[ ]中,也可以以特定组合方式出现

2)使用bx,si,di表示偏移地址时,默认段地址在ds中,可以加前缀es,cs,ss

3)使用bp表示偏移地址时,默认段地址在ss中,可以加前缀ds,es,cs

3、把内存单元ds:[0]作为字节单元还是字单元,依赖于另一个操作数是8位还是16位

1)mov byte ptr [0],5:5作为字节数据送到ds:[0]对应的字节单元

2)mov word ptr [0],5:5作为字数据送到ds:[0]对应的字单元

4.div指令

div是除法指令,使用div作除法的时候:
除数:8位或16位,在寄存器或内存单元中
被除数:(默认)放在AX 或 DX和AX中
结果:运算        8位           16位
            商          AL              AX
           余数        AH               DX

div指令格式:
div reg
div 内存单元

5.用db和dw定义字节型数据和字型数据。
dd是用来定义dword (double word双字)型数据的。

6.dup是一个操作符,在汇编语言中同db、dw、dd 等一样,
也是由编译器识别处理的符号。
它是和db、dw、dd 等数据定义伪指令配合使用的,用来进行数据的重复

原文地址:https://www.cnblogs.com/jasonIL/p/10162355.html