小马超会养兔子 2023-02-27 21:16 采纳率: 72.7%
浏览 61
已结题

DOSbox如何测量程序运行花费的时间?

问题背景

最近在学习王爽的《汇编语言》,然后看b站相关视频教程,安装了DOSBox来进行学习,编译运行都没有问题,但是最近有要求测试汇编程序的运行时间,我网上找了很久都没有找到方法,希望大家不吝赐教。

环境

操作系统为Win77,软件版本为DOSBox0.74

尝试解决方法

一开始我同朋友说可以在PowerShell中用类似Measure-Command{D:\Download_Desktop\编译原理与设计\Lab1\快速排序.exe}来实现,我试了一下然后就出现如下报错

img

希望达到的效果

希望各位能告知如何测试8086写的汇编程序的运行时间

  • 写回答

2条回答 默认 最新

  • 「已注销」 2023-02-27 21:35
    关注

    参考GPT和自己的思路,在 DOSBox 中测试汇编程序的运行时间可以使用 DOSBox 自带的内置工具 debug.exe 来完成,debug.exe 是 DOSBox 中的一个调试器,除了调试程序外,它还可以用来测试程序的执行时间。下面是使用 debug.exe 测试程序执行时间的步骤:

    打开 DOSBox,进入 DOSBox 的命令行界面。

    在 DOSBox 中,输入 debug 命令来启动 debug.exe 调试器。

    在 debug.exe 中,输入以下命令来加载你的汇编程序:

    a 100
    ; 这里的 100 是程序的起始地址,可以根据你的程序来调整
    

    然后输入你的汇编程序代码,例如:

    mov ax, 1
    add ax, 2
    

    按 Enter 键后,输入 ret 命令来返回到 DOSBox 的命令行界面。

    在 DOSBox 的命令行界面中,输入以下命令来开始记录时间:

    debug <你的汇编程序名>
    

    例如,如果你的汇编程序名为 myprog.com,则输入:

    debug myprog.com
    

    当程序运行完毕后,会返回到 DOSBox 的命令行界面,此时再次输入以下命令来结束时间记录并输出执行时间:

    t
    

    执行时间将以毫秒为单位显示在屏幕上。

    下面是一个示例程序和测试步骤:

    示例程序 test.asm:

    org 100h
    start:
    mov ax, 1
    add ax, 2
    mov bx, 3
    add bx, 4
    mov cx, 5
    add cx, 6
    mov dx, 7
    add dx, 8
    mov ah, 4ch
    int 21h
    

    测试步骤:

    将 test.asm 文件保存到 DOSBox 中的某个目录中,例如 C:\asm。

    在 DOSBox 的命令行界面中,进入 C:\asm 目录。

    输入 debug 命令,启动 debug.exe。

    在 debug.exe 中,输入以下命令来加载 test.asm:

    a 100
    mov ax, 1
    add ax, 2
    mov bx, 3
    add bx, 4
    mov cx, 5
    add cx, 6
    mov dx, 7
    add dx, 8
    mov ah, 4ch
    int 21h
    ret
    

    按 Enter 键,返回到 DOSBox 的命令行界面。

    在 DOSBox 的命令行界面中,输入以下命令来开始记录时间:

    debug test.com
    

    当程序运行完毕后,会返回到 DOSBox 的命令行界面,此时再次输入以下命令来结束

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月8日
  • 已采纳回答 2月28日
  • 创建了问题 2月27日