汇编学习总结

汇编学习笔记

一、基础知识

汇编语言的组成

  • 汇编语言由 3 类指令组成
    1. 汇编指令:机器码的助记符,有对应的机器码
    2. 伪指令:没有对应的机器码,由编译器执行,计算机并不执行
    3. 其他符号:如+ 、- 、 * 、 /等,由编译器识别,没有对应的机器码

汇编语言的核心是汇编指令,它决定了汇编语言的特性

存储器

即为内存

指令和数据

存储单元

存储器被分为若干个存储单元,每个存储单元从 0 开始顺序编号,例如 0 ~ 127
计算机最小信息单位是 bit 也就是一个二进制位。8 个bit 组成一个 byte 也就是通常所说的一个字节。

一个汇编程序的基本结构

  1. 这是定义一个段,名称为 abc

    abc segment
    .
    .
    abc ends
  2. 在这个段中写入汇编指令,来实现相关任务

    abc segment
    mov ax,2
    add ax,ax
    add ax,ax
    abc ends
  3. 然后 要指出程序在何处结束

    abc segment
    mov ax,2
    add ax,ax
    add ax,ax
    abc ends
    end
  4. abc 被当做代码段来用,所以,应该将 abc 和 cs 联系起来。(当然这个程序,也不是非这样做不可)

    assume cs:abc
    abc segment
    mov ax,2
    add ax,ax
    add ax,ax
    abc ends
    end
  5. 程序返回

一个程序结束后,将 CPU 的控制权 交给使它得以继续运行的程序,我们称这个过程为:程序返回
那么如何返回呢? 应该在程序的末尾 添加返回的程序段

mov ax,4c00H
int 21H
// 这两条指令 所实现的功能就是程序返回
  • 与结束相关的概念
    目的 相关指令 指令性质 指令执行者
    通知编译器一个段结束 段名 ends 伪指令 编译时,由编译器执行
    通知编译器程序结束 end 伪指令 编译时,由编译器执行
    程序返回 mov ax,4c00H int 21H 汇编指令 执行时,由 CPU 执行

执行一个汇编源程序的步骤在 dosbox 下

在 dosbox 下 输入 masm 可以显示出版本

  • masm

    编译文件 masm xx.asm
    第一个回车 确定输出目标文件名称
    第二个回车 忽略列表文件生成
    第三个回车 忽略交叉引用文件生成

在 dosbox 下 输入 link 可以显示出版本

  • link

    连接 目标文件 从而得到可执行文件
    连接文件 link xx
    第一个回车 输入可执行程序的名称
    第二个回车 忽略映像文件生成
    第三个回车 输入调用的子程序 忽略库文件的连接 忽略按回车
    最后会报一个错LINK : warning L4021:no stack segment // 没有栈段 这里我们不理会这个错误

说完复杂的 方法 现在换简单的

masm xx; // 在结尾加上分行,按enter后,编译器就对xx文件进行编译,在当前目录生成目标文件xx.obj,并在编译的过程中自动忽略中间文件的生成

link xx; // 同上

posted @   lambertlt  阅读(331)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示