美文网首页
汇编语言简介

汇编语言简介

作者: 我的梦想之路 | 来源:发表于2016-07-13 23:46 被阅读58次

    机器语言(二进制语言编写) -->汇编语言(形象化二进制)-->高级语言

    汇编语言的特点:
    1>与硬件有关(不同的CPU有不同的机器指令)
    2>与机器指令一一对应
    3>须详细描述“如何做”
    4>可移植性差

    Inter微处理器

    1>微处理器结构
    8086微处理器结构:
    1.1 CPU功能结构:
    总线接口部件BIU(Bus Interface Unit):总线接口单元(完成CPU与主存储器或外围设备之间的信息传递)
    执行部件EU(Execute Unit):执行单元(完成指令的执行)

    注意:两个单元独立,并行工作,使指令的读取与执行部分重叠,提高指令的执行速度 --- 指令的流水线结构

            1.2 CPU寄存器结构:
                    数据寄存器(通用数据寄存器)
                    指针及变址寄存器
                    段寄存器
                    控制寄存器
    
    CPU寄存器结构

    AX 累加器:存放操作数和结果,乘除运算、I/O指令中特指
    BX 基址寄存器:存放偏移量
    CX 技术寄存器:循环中计数
    DX 数据寄存器:双字长时与AX组合成32位数,乘除运算、I/O指令中特指
    注意:可以以字(16)或字节(8)形式访问,例如,AX的高字节、低字节分别用AH、AL表示

    SP 堆栈指针寄存器:内容始终只想栈顶
    BP 基址指针寄存器:存放地址的偏移量
    SI 源变址寄存器
    DI 目的变址寄存器
    注意:变址寄存器:存放地址的偏移量,也可存放操作数,但只能以字为单位访问(16位)

    CS 代码段寄存器
    DS 数据段寄存器
    SS 栈段寄存器
    ES 附加段寄存器
    注意:段寄存器存放相应段的段基址(段首址的高16位)

    IP 指令指针寄存器:程序计数器,指向下一条指令在代码段中的偏移量(非常重要)
    PSW 程序状态寄存器:记录系统运行中的各种状态和信息。由各种标志位构成,反映运算后的结果特征,将影响某些指令(如条件转移指令)的执行。

    程序状态寄存器

    2> 内存储器结构
    8086内存储器组织:有20条地址线,最大存储空间为1MB。
    2.1 以字节(8位)为单位编址,一个字节数据占一个存储单元
    2.2 以字(16位)为单位存储数据时,占相邻两个单元,高8位存放在高地址字节,低8位存放在低地址字节
    2.3 字单元的地址用它的低地址来表示
    2.4 访主存指令中应指出是字节访问还是字访问
    2.5 字单元的地址一般为偶数值

    内存储器结构 --- 例子

    3>段概念的引进
    16位寄存器如何表示20为的地址?
    答:采用存储器地址分段的方法

    3.1 段是最大长度为64KB的内存储块
    3.2 段的起始地址(段首址)低4位必须为0(人为分段)
    3.3 用户可以同时使用4个段,段间可以邻接、部分重叠、重叠或不相邻
    3.3.1 代码段存放当前程序的指令代码
    3.3.2 数据段存放程序涉及的源数据或结果
    3.3.3 堆栈段是以“先入后出”为原则的数据区
    3.3.4 附加段是辅助数据区,存放串或其他数据

    段概念的引进 -- 图例

    4>内存储器的地址
    4.1 物理地址:每个存储单元的20位实际地址,有唯一性,访问主存时必须用物理地址
    4.2 逻辑地址:每个存储单元的地址用两个部分表示:段基址(段首址的高16位)和偏移量(段内某单元相对段首址的地址差)
    4.3 物理地址 = 段基址*16+偏移量
    书写形式:段基址:偏移量
    4.4 段寄存器中存放的是相应段的段基址值
    4.5 BX/SP/...IP寄存器中存放的是偏移量

    内存储器的地址---示例图 物理地址的形成

    5>堆栈

    堆栈 堆栈示意图

    6>I/O结构

    I/O(输入/输出)结构

    相关文章

      网友评论

          本文标题:汇编语言简介

          本文链接:https://www.haomeiwen.com/subject/pxssjttx.html