【汇编语言教程笔记】 汇编语言是一种低级编程语言,它是计算机硬件层面的语言,用于编写和理解机器码。汇编语言由三类指令组成:汇编指令、伪指令和其他符号。 1. **汇编指令**是机器码的助记符,每一个汇编指令都有一对应的机器码,直接被计算机执行。 2. **伪指令**并不直接对应机器码,而是由编译器在预处理阶段执行,用于指导编译过程,例如定义变量、设置段等。 3. **其他符号**如+-*/是编译器识别的运算符,它们在编译时被转换为相应的机器码。 了解CPU的地址线宽度很重要,因为它决定了CPU能寻址多少内存。例如,8086 CPU有20根地址线,能寻址2^20个内存单元,即1MB的地址空间。地址空间分为几个部分:主存储器(00000~9FFFF)、显存(A0000~BFFFF)和其他ROM(C0000~FFFFF)。 在第二章中,我们学习了8086 CPU的16位结构。它具有16位的运算器、16位的寄存器和16位的内部数据通路。虽然地址总线是20位,但通过内部合成形成20位物理地址,即段地址乘以16加上偏移地址。物理地址的计算公式为:物理地址 = 段地址 × 16 + 偏移地址。8086有四个段寄存器:CS、DS、SS、ES,它们分别用于代码段、数据段、堆栈段和附加段。 第三章介绍了如何通过寄存器访问内存。DS是数据段寄存器,但不能直接向其赋值。字型数据在存储时由两个连续的内存单元组成,低位在低地址,高位在高地址。PUSH和POP指令用于栈操作,它们用于入栈和出栈数据,包括寄存器和内存单元。 第四章讲解了程序的结构,包括程序和数据两部分。程序加载后,DS寄存器存储程序所在内存区的段地址,而偏移地址通常是0。DOS系统会为程序分配一个程序状态块(PSP)。 第五章中,我们学习了[BX]表示法,它表示DS段内的BX偏移地址处的内存单元。LOOP指令用于循环控制,每次执行时CX减1,当CX非零时继续循环,否则退出。MASM汇编器处理 mov ax,[0] 时,将其当作 mov ax,0,可通过指定寄存器或直接给出段地址来避免这个问题。 第六章讨论了包含多个段的程序。可以定义不同的段,如代码段、数据段和堆栈段,并通过ASSUME伪指令关联段寄存器。段的大小需按16字节对齐,因此实际占用空间可能大于数据的字节数。 第七章介绍了更灵活的内存地址定位方法,如使用AND和OR指令进行位操作,以及使用SI和DI寄存器进行类似BX的功能。这些寄存器可以配合地址偏移进行复杂的内存访问。 第八章关注数据处理的两个基本问题,即如何高效地管理和操作数据。BX、SI和DI寄存器常用于数据处理,特别是在处理数组和字符串时。栈通常用于临时存储数据,因为它的自动管理特性使得数据存储和恢复非常便捷。 以上内容涵盖了汇编语言的基础知识,包括指令类型、CPU结构、内存寻址、寄存器使用、程序结构和数据处理策略。这些是编写汇编语言程序的基础,也是深入理解计算机系统工作原理的关键。
剩余6页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助