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

  • 相关阅读:
    缓存雪崩与缓存穿透
    读取表中最大值
    使用vscode在谷歌上运行代码
    elment 中tree组件展开所有和收缩所有节点
    深度系统商店提示无法安装软件依赖错误
    诗词,理解,品论
    《45个十分钟读懂资本论》原文、适合朗读版和个人见解
    《论持久战》全文
    OSError: [WinError 126] 找不到指定的模块。
    C++ 获取序列最大(或最小)的 N 个元素
  • 原文地址:https://www.cnblogs.com/elewei/p/7532932.html
Copyright © 2011-2022 走看看