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

汇编基础DOSBox的使用

DOSBox 的使用

首先mount c d:/masm回车

c: // 进入有debug.exe 的文件夹

-debug

-r 显示寄存器的值

-rax修改ax中的值

-u显示代码段的汇编指令  从cs:IP处显示

-a 向代码段写入汇编代码

-e 立即数/寄存器:偏移值 修改从给定地址内存中的字节值

-g 数字 执行到代码段的指定位置 如果数字为空则执行到程序末尾直至结束

在汇编语言中,BP(Base Pointer)寄存器默认使用的是栈段寄存器 SS(Stack Segment)

  1. BP 的默认段寄存器

    • 当使用 BP 访问内存数据时,默认的段寄存器是 SS(栈段)。
    • MOV AX, [BP+4] ; 从 SS 段中的 BP+4 偏移地址处读取数据
    • 这里的 [BP+4] 实际上是指 SS:[BP+4]
  2. 例外情况

    • 如果需要访问其他段(如数据段 DS),必须显式指定段寄存器。
    • MOV AX, DS:[BP+4] ; 明确指定数据段 DS
  3. 区别于 SP(Stack Pointer)

    • 虽然 BP 也默认使用 SS 段,但它常用于指向栈帧的基址(基地址指针),可以通过偏移量访问函数参数和局部变量。
    • SP 则直接指向当前栈顶位置,用于压栈和弹栈操作。

总结:

  • BP 默认段寄存器是 SS,主要用于访问栈帧中的数据。
  • 如果要访问其他段的数据,则需要显式指定段寄存器,例如 DS:[BP]

 

在没有显式指定段寄存器的情况下,访问内存地址时会默认使用 DS。 

http://www.kler.cn/a/461039.html

相关文章:

  • redux react-redux @reduxjs/toolkit
  • CentOS — 压缩解压
  • VMware去虚拟化
  • 物联网开发利器:基于web的强大的可拖拽组态软件
  • No.1十六届蓝桥杯备战|第一个C++程序|cin和cout|命名空间
  • OpenStack的核心组件、主要特点和使用场景
  • MATLAB关于集合的运算(部分)
  • MyBatisPlus完整技术汇总一
  • Flink CDC 自定义函数处理 SQLServer XML类型数据 映射 doris json字段方案
  • 通过交叉实现数据触底分页效果new IntersectionObserver()(html、react、vue2、vue3)中使用
  • 【二】arcgis JavaScript api 实现加载不同坐标系的底图和三维服务
  • 工作中常用Vim的命令
  • MiFlash 线刷工具下载合集
  • 查看 GitHub 仓库的创建时间
  • Excel for Finance 06 `STOCKHISTORY` 函数
  • Vue.js前端框架教程15:Vue父子组件之间的通信ref、emits
  • HarmonyOS NEXT应用开发之工具安装
  • 初次使用Oracle存储过程,定时任务--记录
  • 产品经理2025年展望
  • 创新引领未来,科技照亮梦想
  • Spring Boot缓存
  • 【MySQL】第一弹----库的操作及数据类型
  • 网络安全问题解答
  • 尚硅谷Vue3入门到实战 —— 02 编写 App 组件
  • axios拦截器底层实现原理
  • 基于SpringBoot+Vue的旅游推荐系统