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

DOS 程序

示例是16 位 DOS 环境的汇编(针对 x86 架构早期的实模式),使用的是 16 位寄存器(如AXDSCS)和 DOS 系统调用(INT 21H),这是非常古老的汇编风格(常见于 DOS 程序或早期 PC 软件)。

  1. 汇编程序的段定义(section)
    汇编程序通过 section 划分不同的内存区域:

    • text 段:存放可执行指令(代码);
    • data 段:存放常量、变量等数据;
    • bss 段:存放未初始化的数据。
      本例中仅使用了代码段,数据直接定义在代码段中(简化写法)。
  2. 16 位模式与 ORG 伪指令

    • bits 16:声明程序运行在 16 位模式下(适用于 DOS 等实模式环境)。
    • org 100H:指定程序加载到内存后的起始偏移地址为 100H(0x100),这是 DOS 下 .COM 格式程序的标准(.COM 程序无复杂段结构,从 100H 开始执行)。
  3. 寄存器与数据传送

    • AX, DS, CS 是 16 位通用寄存器:
      • CS(代码段寄存器):存放当前代码段的基地址;
      • DS(数据段寄存器):存放当前数据段的基地址;
      • 指令 MOV AX, CS 和 MOV DS, AX 用于将数据段与代码段关联(因数据直接定义在代码段中)。
    • ECX 是 32 位寄存器,在 16 位模式下可作为计数器,配合 LOOP 指令实现循环。
  4. DOS 系统功能调用(INT 21H)
    这是 DOS 环境下程序与操作系统交互的核心方式:

    • 通过设置 AH 寄存器指定功能(如 AH=9 表示输出字符串,AH=4cH 表示程序退出);
    • 相关参数通过其他寄存器传递(如字符串地址存于 DX);
    • 执行 INT 21H 触发中断,由操作系统完成指定功能。
  5. 循环控制(LOOP 指令)
    LOOP next 指令的作用是:

    • 将 ECX 寄存器的值减 1;
    • 若 ECX 不为 0,则跳转到标号 next 处继续执行;
    • 若 ECX 为 0,则退出循环,执行后续指令。
      本例中 ECX 初始值为 5,因此循环执行 5 次。
  6. 字符串定义与结束标志

    • 字符串通过 db 定义,每个字符对应一个 ASCII 码;
    • DOS 字符串输出功能(AH=9)要求字符串必须以 $ 结尾,否则会输出垃圾数据直到遇到 $
http://www.xdnf.cn/news/1412569.html

相关文章:

  • DBeaver:一款免费开源的数据库管理工具
  • BLE广播与扫描
  • 前端学习——CSS
  • 随时随地开发:通过 FRP 搭建从 Ubuntu 到 Windows 的远程 Android 调试环境
  • Hutool DsFactory多数据源切换
  • 企业级架构师综合能力项目案例一(各种组件集群搭建+SpringBoot整合)
  • 决策思维研究体系主要构成
  • Python入门教程之类型判别
  • STM32F103C8T6的智能医疗药品存储柜系统设计与华为云实现
  • 解决git push时的错误提示:“error: src refspec master does not match any”
  • 漏洞基础与文件包含漏洞原理级分析
  • 【重学MySQL】九十四、MySQL请求到响应过程中字符集的变化
  • 盛最多水的容器:双指针法的巧妙运用(leetcode 11)
  • 多智能体系统设计:5种编排模式解决复杂AI任务
  • FPGA设计杂谈之七:异步复位为何是Recovery/Removal分析?
  • FunASR人工智能语音转写服务本地部署测试
  • HTTPS -> HTTP 引起的 307 状态码与HSTS
  • C++动态规划——经典题目(下)
  • Chrome DevTools Performance 是优化前端性能的瑞士军刀
  • JSP 原理深度解析
  • MATLAB R2010b系统环境(四)MATLAB帮助系统
  • 【GPT入门】第62课 情感对话场景模型选型、训练与评测方法,整体架构设计
  • 深度学习篇---MobileNet网络结构
  • 五分钟聊一聊AQS源码
  • globals() 小技巧
  • 仅有一张Fig的8分文章 胞外囊泡lncRNA+ CT 多模态融合模型,AUC 最高达 94.8%
  • 【LeetCode修行之路】算法的时间和空间复杂度分析
  • 大数据毕业设计选题推荐-基于大数据的大气和海洋动力学数据分析与可视化系统-Spark-Hadoop-Bigdata
  • ESP32C3 系列实战(1) --点亮小灯
  • Wi-Fi技术——物理层技术