zoukankan      html  css  js  c++  java
  • 30汇编

    第一章: 1. 什么是汇编语言

    第二章:IA-32平台

    《微机原理与接口》 研究PC机及CPU物理结构和编程结构的全面研究

    《组成原理》计算机一般结构、功能、性能的研究

    《汇编语言》如何利用硬件系统的编程结构和指令集有效灵活地控制系统进行工作。

    汇编语言书籍:

    汇编语言 王爽

    汇编语言的工作过程

    第一步:编写源程序

    // 1.asm
    
    assume cs:codesg
    
    codesg segment      ;定义一个段,段的名称为"codesg", 这个段从此开始
    
        mov ax, 0123H
        mov bx, 0456H
        add ax, bx
        add ax, ax
        
        mov ax, 4c00H
        int 21H
        
    codesg ends        ; 名称为"codesg"的段到此结束
    
    end             ; 汇编程序序的结束

    程序解释:

    汇编程序由汇编指令与伪指令组成。

    汇编指令由机器执行,伪指令由编译器执行。

    assume 伪指令 表示某一段寄存器和程序中的某一个segment..ends 定义的段相关联。

    segment 与 ends 是成对使用的伪指令,功能是定义一个段, codesg 是段名,可以任意定义。

    end 也是伪指令,表示汇编程序的结束

    第二步: 编译源程序

    使用DosBox masm 5.0 编译环境

    mount C /usrs/David/Documents/masm

    C:

    第1步:调用 masm 程序

    第2步:编译,输入源文件名,不用后缀

    C:src2.asm

    输入源文件后,会提示输入目标文件名称

    程序编译后,会生成一个2.obj 的目标文件

    第3步:连接,生成.exe 可执行文件

    调用 link 程序

    连接的作用:

    1. 当源程序很大时,可以分为多个源文件来编译,每个源程序编译成目标文件后,再用连接程序将它们连接到一起,生成一个可执行文件。

    2. 当程序中调用了某个库文件中的子程序,需要将这个库文件和该程序生成的目标文件连接到一起,生成一个可执行文件。

    问题: 谁将可执行文件中的程序装载进入内存并使它运行?

    CPU 向 内存 读取数据的过程

    第一步:CPU 通过地址总线向内存地址发出

    第二步:CPU 通过控制总线将读写命令发出

    第三步:CPU 通过数据总线与内存进行读写数据

    汇编语言程序具有访问和控制CPU组件的能力,处理器的主要组件分类:

    * 控制单元

    * 执行单元

    * 寄存器

    * 标志

    一个CPU有N根地址线,则可以说这个CPU的地址总线宽度为N。这样的CPU最多可以寻找2的N次方个内存单元。

    数据总线的宽度决定了CPU和外界的数据传送速度。8根数据总线一次可传送一个8位二进制数据(即一个字节)。16根数据总线一次可传送2个字节。

    控制总线的数量,决定了CPU提供了对外部器件的多少种控制。

    主板与内存的概念

    内存地址空间的概念

    要完整的描述一个内存单元,需要两种信息:

    内存单元地址

    内存单元长度

    开发环境

    汇编器(MASM, NASM, GAS, HLA)

    连接器

    调试器

    高级语言的编译器

    目标代码反汇编器

    用于优化的简档生成工具

    安装 binutils

    https://www.gnu.org/software/binutils/binutils.html

  • 相关阅读:
    5.4 省选模拟赛 修改 线段树优化dp 线段树上二分
    一本通 高手训练 1782 分层图 状压dp
    luogu P3830 [SHOI2012]随机树 期望 dp
    5.2 省选模拟赛 或许 线型基
    luogu P4562 [JXOI2018]游戏 组合数学
    一本通 高手训练 1781 死亡之树 状态压缩dp
    luogu P4726 【模板】多项式指数函数 多项式 exp 牛顿迭代 泰勒展开
    4.28 省选模拟赛 负环 倍增 矩阵乘法 dp
    HDU 1756 Cupid's Arrow 计算几何 判断一个点是否在多边形内
    一本通 高手训练 1763 简单树 可持久化线段树 树链刨分 标记永久化
  • 原文地址:https://www.cnblogs.com/elewei/p/7532932.html
Copyright © 2011-2022 走看看