汇编语言学习第一节

汇编语言学习第一节

**

一.汇编语言基础

1****.汇编基础******
(1)系统总线:总线(Bus)是用于多个部件相互连接、传递信息的公共通道,物理上就是一组公用导线。类似与现实世界中的公共汽车一样,可以将各个站点的人联系起来。
(2)汇编语言中,习惯使用后缀字母区别不同进制的数据。
例如,使用字母B(或小写字母形式b,来自二进制的英文单词Binary)表示二进制数,使用字母H(或小写字母形式h,来自十六进制的英文单词Hexadecimal)表示十六进制数,而十进制数通常不需要特别说明(或者用后缀字母D或d,以示强调)。
2.8086处理器
(1)8086的功能结构
汇编语言学习第一节
2)8086的寄存器
用于暂时存放程序执行过程中的代码和数据,这些存储单元被称为寄存器(Register)。
8086的寄存器有8个16位通用寄存器、4个16位段寄存器、1个16位标志寄存器和1个16位指令指针寄存器。
汇编语言学习第一节
(图中数字15、7、0等依次用于表达二进制位D15、D7、D0)
<1>通用寄存器(General-Purpose Register):一般是指处理器最常使用的整数通用寄存器,可用于保存整数数据、地址等。
8 个 16 位通用寄存器,分别被命名为:AX、BX、CX、DX、SI、DI、BP和SP。其中前4个通用寄存器AX、BX、CX和DX还可以进一步分成高字节H(High)和低字节L(Low)两部分,这样又有了8个8位通用寄存器:AH和AL、BH和BL、CH和CL、DH和DL。
汇编语言学习第一节
<2>标志寄存器:标志(Flag)用于反映指令执行结果或控制指令执行形式。
状态标志有6个,它们从低位到高位是:进位标志CF(Carry Flag)、奇偶标志PF(Parity Flag)、调整标志AF(Adjust Flag)、零标志ZF(Zero Flag)、符号标志SF(Sign Flag)、溢出标志OF(Overflow Flag)。
8086的控制标志有3个:方向标志DF(Direction Flag),仅用于串操作指令中,控制地址的变化方向;中断允许标志IF(Interrupt-enable Flag),或简称中断标志,用于控制外部可屏蔽中断是否可以被处理器响应;陷阱标志TF(Trap Flag),也常称为单步标志,用于控制处理器是否进入单步操作方式。
**<3>指令指针寄存器:程序由指令组成,指令存放在主存储器中,这个存储器地址保存在16位指令指针寄存器IP(Instruction Pointer)中。
<4>段寄存器:对应用程序来说,主要涉及3类基本段:**存放程序中指令代码的代码段(CodeSegment)、存放当前运行程序所用数据的数据段(Data Segment)和指明程序使用的堆栈区域的堆栈段(Stack Segment)。
(3)8086的存储器组织
处理器从存储器读取指令,在执行指令的过程中读写数据。对存储器的基本操作是按照要求向指定地址(位置)存进(即写入Write)或取出(即读出Read)信息。
为了区分和识别各个存储单元,并按指定位置进行存取,就给每个存储单元编排一个顺序号码,称为存储单元地址或存储器地址(Memory Address)。
(4)物理地址和逻辑地址
存条和ROM芯片构成的主存储器需要处理器通过总线进行访问,被称为物理存储器。物理存储器的每个存储单元有一个唯一的地址,就是物理地址(Physical Address)。
汇编语言学习第一节逻辑地址常借用MASM汇编程序的方法,使用英文冒号“:”分隔段基地址和偏移地址,形如“段基地址:偏移地址”。
3.汇编语言程序的格式
**(1)最基本的数据传送指令:**数据传送指令的助记符是“MOV”(取自Move),功能是将数据从一个位置传送到另一个位置。
(2)语句格式
<1>执行性语句——表达处理器指令的语句:
标号: 处理器指令助记符 操作数,操作数 ;注释
<2>说明性语句——表达汇编程序命令的语句:
名字: 伪指令助记符 参数,参数…;注释
【注意】: 标号和名字是符合汇编程序语法的用户自定义的标识符(Identifier)。标识符(也称为符号Symbol)一般最多由31个字母、数字及规定的特殊符号(如 _、$、?、@)组成,不能以数字开头(与高级程序语言一样)。
例如,msg、var2、buf、next、again都是合法的用户自定义标识符。而8var、ax、mov、db则是不符合语法(非法)的标识符,原因是:8var 以数字开头,其他是保留字。
默认情况下,汇编程序不区分包括保留字在内的标识符字母大小写。
(3)助记符
数据传送指令的助记符是“MOV”
调用中断服务程序的指令助记符是“INT”(Interrupt)
调用子程序的指令助记符是“CALL”
“DB”(Define Byte),功能是在主存中分配若干的存储空间。