当前位置: 首页 > news >正文

王爽《汇编语言》第四章 笔记

4.2 源程序

4.2.1 伪指令

在汇编语言的源程序中包含两种指令:汇编指令、伪指令。
(1)汇编指令:有对应机器码的指令,可以被编译为机器指令,最终被CPU所执行。
(2)伪指令:没有对应的机器指令,最终不被CPU所执行;伪指令由编译器执行,编译器根据伪指令来进行相关的编译工作。

segment…ends

segment和ends的功能是定义一个段,segment说明一个段开始,ends说明一个段结束。

段名 segment
...
段名 ends
  • segment和ends是一对成对使用的伪指令。

  • segment和ends是在写可被编译器编译的汇编程序时,必须用到的一对伪指令。

  • 一个汇编程序是由多个段组成的,这些段被用来存放代码、数据或当作栈空间来使用。

  • 一个有意义的汇编程序中至少要有一个代码段。

end

end是一个汇编程序的结束标记,编译器在编译汇编程序的过程中,如果碰到了伪指令end,就结束对源程序的编译。

  • 写完程序要在结尾处加上伪指令end。否则编译器不知道程序在何处结束。

  • 区分end和ends:ends与segment成对使用,标记一个段的结束,ends可以理解为end segment;而end的作用是标记整个程序的结束。

assume

伪指令assume的含义是“假设”。它假设某一段寄存器和程序中的某一个用segment…ends定义的段相关联。

通过assume可以使编译程序将段寄存器和某一个具体的段相联系。

4.2.2 源程序中的“程序”

4.2.4 程序的结构

// 程序4.2:计算2的立方
assume cs:abc // (4)abc被当作代码段来用,所以应该将abc和cs联系起来
abc segment // (1)定义一个段,名称为abc,与结尾abc ends搭配使用// (2)在这个段中写入汇编指令mov ax, 2  add ax, axadd ax, ax// (5)程序返回mov ax, 4c00Hint 21H
abc ends
end // (3)指出程序在何处结束

4.2.5 程序返回

// 程序返回指令举例,本章暂时只需要记忆这两条指令即可
mov ax, 4c00H
int 21H // 必须输入H才能通过,int可以理解为interrupt

4.3 编辑源程序

参考blog

【王爽《汇编语言(第4版)》笔记】第4章:第一个程序_操作系统的外壳 王爽-CSDN博客

http://www.rkmt.cn/news/20563.html

相关文章:

  • MySql安装中的问题
  • 10.14总结
  • 图形学中的变换
  • 使用DirectX绘制天空盒并实现破坏和放置方块
  • DirectX12初始化
  • 10月13日
  • Ubuntu22.04安装CH340/CH341驱动
  • STM32——UART
  • WebApi 交叉观察者- IntersectionObserver复盘
  • css: Bootstrap5 Accordions
  • AMPopTip - 优雅的iOS动画提示框库
  • 文件名中有空格比较烦人
  • 软工大三开学总结
  • 连接 USB 设备
  • SpringBoot-day1(快速上手SpringBoot,SpringBoot简介,SpringBoot基础配置,属性配置,yaml文件) - a
  • elk time
  • 详细介绍:【OpenHarmony】用户文件服务模块架构
  • 详细介绍:全新 CloudPilot AI:嵌入 Kubernetes 的 SRE Agent,降本与韧性双提升!
  • “环境变量”是什么, 为什么要配置环境变量 --初学者
  • Java 装饰器模式(Decorator) - krt
  • Python configparser 模块 - INI 文件读写利器
  • QT:获取文件信息之创建日期方法created()方法--废弃
  • 排列组合 容斥 总结
  • C/C++ 指针详解与各种指针定义 - 指南
  • 玄机——第一章 应急响应-Linux日志分析 wp
  • 第四周第五天4.5
  • 12 10.11
  • 09 面向对象基础概念的总结
  • CSP-S 2025 提高级模拟赛 Day6 复盘 B.连通子图
  • 基于Java的家政服务管理优秀的系统的设计与完成-计算机毕设 附源码05300