当前位置: 首页 > 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.hskmm.com/?act=detail&tid=30449

相关文章:

  • 10.13总结
  • MySql安装中的问题
  • 题解:AT_agc050_b [AGC050B] Three Coins
  • go:generate 指令
  • 光栅化
  • 图形学中的变换
  • Unity URP 体积云
  • 使用DirectX绘制天空盒并实现破坏和放置方块
  • 编写DX12遇到的坑
  • 编写DX12时使用的辅助类
  • HLSL语法
  • DirectX12初始化
  • 实验2
  • CF2159B
  • 登录校验---Filter过滤器
  • 日志|Ajax
  • 环境变量 Path 配置实战指南:从“能用”到“专业”--两种配置环境变量的方法
  • 10月13日
  • Ubuntu22.04安装CH340/CH341驱动
  • 玄机蓝队靶场_应急响应_198:实战Live勒索病毒溯源排查
  • JetBrains Mono字体好看、及其它
  • STM32——UART
  • WebApi 交叉观察者- IntersectionObserver复盘
  • [KaibaMath]1009 关于||a|-|b||≤|a+b|的证明
  • AMPopTip - 优雅的iOS动画提示框库
  • 2026年深度对比值得推荐的10个在线客服系统
  • 文件名中有空格比较烦人
  • 20232421 2024-2025-1 《网络与系统攻防技术》实验一实验报告
  • 十月总结
  • 20251013 之所思 - 人生如梦