在 Windows 7 调试指令中有效的循环语句在 DOSBox 0.74 中不起作用

2023-12-07

我们有一个关于汇编语言循环的活动。我们的任务很简单:显示数字 0 到 9,每个数字之间有空格。我在我们学校的 WINDOWS 7 中使用“debug”命令获得了可以在命令提示符下运行的代码。我的笔记本电脑是 Windows 10,最近我发现命令提示符中没有“调试”命令。所以我尝试在 DOSBox 0.74(可能是最新的)中编写代码。每次我在 DOSBox 中运行它时,程序都会突然挂起然后崩溃。这是代码

mov cx,0a
mov ah,02
mov dl,30
int 21
mov bl,dl
mov dl,20
int 21
mov dl,bl
inc dl
loop 0107
int 20

有人可以解释一下 DOSBox 崩溃的原因吗?

以下是在 Windows 7 上的 cmd 中运行的工作程序的示例图片:

enter image description here


虽然你的问题与其他问题不重复堆栈溢出问题它似乎有某些相似之处。即意外挂起或异常行为。看来DEBUG.EXE在 DOSBox 中运行时,可用于 MS-DOS 的版本并不总是能正常运行。这可能是因为 DOSBox 可能无法 100% 兼容模拟真实的 PC/硬件(和 DOS)。这可能会导致某些程序和/或操作系统在 DOSBox 中使用时无法按预期工作。

我修改了之前的堆栈溢出答案建议各种MS-DOSDEBUG.EXE程序在 DOSBox 下运行时可能无法正常工作。 Ross Ridge 确认他可以在 DOSBox 内运行 DOS 6.22 的调试器时复制您的问题。

有一个版本DEBUG.COM发布者:FreeDOS这似乎与 DOSBox 配合得很好。我已经制作了 FreeDOS 版本调试网可以从我的网站下载。或者您可以下载ZIP File来自 Softpedia 并摘录DEBUG.COM.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Windows 7 调试指令中有效的循环语句在 DOSBox 0.74 中不起作用 的相关文章

  • 在汇编中显示两位数? [复制]

    这个问题在这里已经有答案了 我对汇编编程完全陌生 在课堂作业的示例中 需要将两个数字相加并显示总和 我发现神秘的是当其是两位数时显示总和 这是我的代码 mov al num1 mov bl num2 add al bl add ax 303
  • 为什么这个 C++ 包装类没有被内联掉?

    EDIT 我的构建系统出了问题 我还在弄清楚到底是什么 但是gcc产生了奇怪的结果 尽管它是 cpp文件 但是一旦我使用了g 然后它按预期工作 对于我一直遇到麻烦的事情来说 这是一个非常精简的测试用例 其中使用数字包装类 我认为会内联 使我
  • 为什么我可以使用 ret 退出 main?

    我即将弄清楚程序堆栈到底是如何设置的 我了解到用以下方式调用该函数 call pointer 实际上等同于 mov register pc programcounter add register 1 where 1 is one instr
  • 预取双类成员需要转换为 char*?

    我有一个正在使用的课程 mm prefetch 预先请求包含 double 类型的类成员的缓存行 class MyClass double getDouble return dbl other members double dbl othe
  • C++ 中的 CPUID 实现

    我想知道这里是否有人有一些可以从任何托管 net 语言引用的 C CPUID 实现的好示例 另外 如果情况并非如此 我是否应该注意 X86 和 X64 之间的某些实现差异 我想使用 CPUID 来获取运行我的软件的机器上的信息 崩溃报告等
  • 什么时候汇编比C更快? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的
  • 为什么不能执行 mov [eax], [ebx] [重复]

    这个问题在这里已经有答案了 我可以做这个 mov eax ebx 和这个 mov eax ebx 甚至这个 mov eax ebx 但不是这个 错误C2415 mov eax ebx 只是wtf 为什么 它与 ptr1 ptr2 相同 为什
  • 如何在汇编语言中换行打印多个字符串

    我试图在汇编中的不同行上打印多个字符串 但使用我的代码 它只打印最后一个字符串 我对汇编语言非常陌生 所以请耐心等待 section text global start start mov edx len mov edx len1 mov
  • CALL指令是否总是将EIP指向的地址压入堆栈?

    x86架构中函数调用时是否存在返回地址不入栈的情况 No CALL根据定义 将在跳转到目标地址之前将返回地址压入堆栈 该返回地址是EIP or RIP sizeof call instruction 通常为 5 个字节 英特尔 64 和 I
  • 汇编基础知识:输出寄存器值

    我刚刚开始学习汇编语言 我已经陷入了 在屏幕上显示存储在寄存器中的十进制值 的部分 我使用 emu8086 任何帮助将不胜感激 model small Specifies the memory model used for program
  • 在linux x86平台上学习ARM所需的工具[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 x86 linux 机器 在阅读一些关于 ARM 的各种信息时 我很好奇 现在我想花一些时间学
  • 尝试使用 x86 程序集 GNU GAS 在数组索引处赋值时出现错误

    我在用x86GNU 与 GCC 的程序集 并尝试实现相当于以下内容的程序集c c int x 10 x 0 5 但是 当我尝试运行 使用命令 a out 我的汇编代码如下 第一次编译后gcc filename s 错误Segmentatio
  • 减法进位标志

    我正在使用 MASM32 有了这个代码 mov eax 5 sub eax 10 CF 状态标志将被设置 但使用我的铅笔和纸 我实际上看到 MSB 没有任何进位 是的 我知道从较少的数字中减去大的数字集CF 但我想知道为什么 因为使用这段代
  • 为什么 RISC-V S-B 和 U-J 指令类型以这种方式编码?

    我正在读一本书 计算机组织与设计RISC V版 我遇到了 S B 和 U J 指令类型的编码 我上面提到的那些类型有奇怪的编码立即字段 S B 类型将直接字段分为两部分 这是有道理的 因为所有指令编码都必须相似 但我无法理解为什么立即字段以
  • 从汇编程序获取命令行参数

    通读 专业汇编语言书籍 似乎它提供了用于读取命令行参数的错误代码 我纠正了一点 现在它从段错误变成了读取参数计数 然后是段错误 这是完整的代码 data output1 asciz There are d params n output2
  • 为什么在强度降低乘法和循环进位加法之后,这段代码的执行速度会变慢?

    我正在读书阿格纳 雾 https en wikipedia org wiki Agner Fog s 优化手册 https en wikipedia org wiki Agner Fog Optimization 我遇到了这个例子 doub
  • 68HC11计算sin(x)的汇编代码

    68HC11 使用泰勒级数或查找表计算正弦值的汇编代码是什么 显示值只能是整数 查找表如何工作 在这种情况下 如何使用它来实现泰勒级数 http en wikipedia org wiki Taylor series 如果您正在寻找浮点解决
  • Intel 64 和 IA-32 上的 MESI 有何意义

    MESI 的要点是保留共享内存系统的概念 然而 对于存储缓冲区 事情就变得复杂了 一旦数据到达 MESI 实现的缓存 下游内存就会保持一致 然而 在此之前 每个核心可能对内存位置 X 中的内容存在分歧 具体取决于每个核心的本地存储缓冲区中的
  • “rep stos”x86 汇编指令序列有什么作用?

    我最近偶然发现了以下汇编指令序列 rep stos dword ptr edi For ecx重复 存储内容eax到哪里edi指向 递增或递减edi 取决于方向标志 每次 4 个字节 通常 这用于memset型操作 通常 该指令简单地写成r
  • 如何知道寄存器是否是“通用寄存器”?

    我试图了解寄存器必须具备什么标准才能被称为 通用寄存器 我相信通用寄存器是一个可以用于任何用途的寄存器 用于计算 将数据移入 移出等 并且是一个没有特殊用途的寄存器 现在我读到了ESP寄存器是通用寄存器 我猜是ESP寄存器可以用于任何事情

随机推荐

  • 在单个链表中的任意索引处插入新节点

    我将如何创建一个函数 允许我在链表中 的任何索引处插入新节点 这是结构 struct node int data struct node next 这是函数 注意只有一个双指针 索引和数据参数 void insertN struct nod
  • “填充无效且无法删除”-这段代码有什么问题吗?

    每次我运行这个并加密时 输出都是可变的 当我尝试解密时 我收到 填充无效且无法删除 已经和这个斗争了一两天了 我很茫然 private static string strIV abcdefghijklmnmo The initializat
  • Break D3 每个循环没有标志

    考虑以下代码 circle each function d code 我怎样才能打破循环 是否有一种自然的 D3 方法可以打破 every 循环 我的意思是没有标志如下 var flag false circle each function
  • 如何在 dplyr 中对将 NA 放在第一位进行排序? [复制]

    这个问题在这里已经有答案了 考虑以下示例 require tibble require dplyr set seed 42 tbl lt data frame id letters 1 10 val c runif 5 NA runif 4
  • 致命错误:找不到“Google_Auth_AssertionCredentials”类

    我正在尝试将旧的 google api 迁移到新的 api 这样我就可以获取 google 分析数据 我正在尝试与this示例 但它会引发此错误 致命错误 找不到类 Google Auth AssertionCredentials 示例 p
  • ReactJS中的渲染函数

    快问 我正在学习react js 当我们创建组件时 我们在渲染函数中提供要渲染的组件的 html 模板 到目前为止 我只看到了带有非常小的 html 片段的小组件 但我只是想知道如果我们有一个带有巨大 html 模板的组件会发生什么 有没有
  • Core 3.0 更新后 Azure 函数停止工作

    该代码在 Core 3 0 Preview7 版本中工作 但更新到 3 0 Azure 函数后开始出现错误 如果我尝试访问构建器服务对象 则会出现错误 也无法调试问题 还尝试更新 Microsoft Extensions Dependenc
  • 等待 HTML5 视频加载

    我有一个视频标签 当我让用户从数据库中的多个视频中进行选择时 我会动态更改其来源 问题是 当我更改 src 属性时 即使我告诉它 视频也不会加载 这是我的代码 video attr src my video value ogg video
  • 更改我的 jquery mobile 主题会更改我的 css 样式

    我在网站上创建了一个可折叠集 看起来与此类似 div style margin auto padding top 50px padding bottom 20px div h2 span style font size 16px font
  • BSD 套接字 - 如何使用非阻塞套接字?

    我正在尝试使用非阻塞 TCP 套接字 问题是他们仍然在阻止 代码如下 服务器代码 struct sockaddr name char buf 80 void set nonblock int socket int flags flags f
  • 如何从 (SQLite) 数据库加载的 JTable 中插入、更新和删除项目

    我目前有 2 个类 一类显示 GUI 一类是从数据库获取项目 我的代码如下 此代码用于在我的 GUI 中显示 JTable public void table if SOMR tableCall true this columnNames
  • 迭代对象时如何断言匹配类型?

    以下代码块会产生打字稿错误 因为尽管we我知道foo k and bar k 是同一类型 TS 无法知道 好吧 也许通过某种魔法它可以 但显然它不知道 interface IMixed a number b string c boolean
  • 从 Web 服务访问 FacesContext

    我正在开发一个 Web 服务 该服务将由我编写的客户端调用 在 Web 服务中 我需要使用应用程序范围的对象 以减轻系统上应用程序的负载 我已经实现了我的应用程序范围的对象 如下所示这个问题 我可以在 jsf 页面中使用我的对象 没有任何问
  • 有 GZIP J2ME 库吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 是否有适用于 J2ME 的 gzip 压缩库 Try Jazzlib 虽然是GPL 而且好像已经有一段时间没有更新了 另一种选择是尝试从libgcj
  • XSLT 模板中的超链接

    我正在尝试使用 XML 信息和 XSLT 模板创建超链接 这是 XML 源
  • php preg_replace 特定 html 注释标签之间的所有内容

    我检查了其他答案 但似乎无法执行以下操作 请帮助别人 我想删除中间的所有内容 包括特定的 html 注释 HTML Some HTML that must stay some html that must go Some more HTML
  • 将 opencv 重映射代码从 c++ 转换为 python

    我正在尝试将 c opencv cv2 remap 代码转换为 python 我没有收到任何错误 但结果不符合预期 我得到了缩放图像 c code int main Mat img imread captcha1 jpg float pha
  • Angular:ng-repeat 不起作用

    这是我的代码 我从 w3school 获取的
  • ViewScoped 的工作方式与 RequestScoped 类似 - 为什么?

    我编写了一个 ViewScoped Managed Bean 每次刷新 Web 浏览器中的页面时 该 Managed Bean 似乎都被重新创建 文章为空 它加载一个新的文章对象等等 对我来说 它看起来与 RequestScoped 的行为
  • 在 Windows 7 调试指令中有效的循环语句在 DOSBox 0.74 中不起作用

    我们有一个关于汇编语言循环的活动 我们的任务很简单 显示数字 0 到 9 每个数字之间有空格 我在我们学校的 WINDOWS 7 中使用 debug 命令获得了可以在命令提示符下运行的代码 我的笔记本电脑是 Windows 10 最近我发现