汇编程序帮助

发布于 2024-10-05 02:00:33 字数 657 浏览 1 评论 0原文

我有一个程序应该清除屏幕并打印我的名字,然后换行并再次打印我的名字。但是当我运行它时什么也没有显示。只是程序正常终止。我在 Windows 命令提示符下使用调试来执行此操作。

    call 010E
    call 0125
    call 012D
    call 0125
    int 20

    push ax     #clearscreen(010E)
    push bx
    push cx
    push dx
    xor al, al
    xor cx, cx
    mov dh, 18
    mov dl, 4f
    mov bh, 07
    mov ah, 06
    int 20
    pop dx
    pop cx
    pop bx
    pop ax
    ret

    mov dx, 0200    #printline(0125)
    mov ah, 09
    int 21
    ret

    push ax         #new line( 012D)
    push dx
    mov ah, 02
    mov dl, 0d
    int 21
    mov dl, 0a
    int 21,
    pop dx
    pop ax
    ret

    DB' Antarr$ #(0200)

I have a program that is supposed to clear the screen and print my name, then new line and print my name again. but when i run it nothing shows up. just program teminated normally. I'm doing this in windows command prompt using debug.

    call 010E
    call 0125
    call 012D
    call 0125
    int 20

    push ax     #clearscreen(010E)
    push bx
    push cx
    push dx
    xor al, al
    xor cx, cx
    mov dh, 18
    mov dl, 4f
    mov bh, 07
    mov ah, 06
    int 20
    pop dx
    pop cx
    pop bx
    pop ax
    ret

    mov dx, 0200    #printline(0125)
    mov ah, 09
    int 21
    ret

    push ax         #new line( 012D)
    push dx
    mov ah, 02
    mov dl, 0d
    int 21
    mov dl, 0a
    int 21,
    pop dx
    pop ax
    ret

    DB' Antarr$ #(0200)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

余生共白头 2024-10-12 02:00:33

您的第一个也是最明显的错误是使用 clearscreen 函数调用 int 20(终止程序),而不是 BIOS 中断 int 10

编辑:但是你为什么不使用汇编器呢?例如,尝试NASM。另外,该程序: Tech,将帮助您找到正确的 DOS 或 BIOS 功能。

Your first and most obvious error is calling int 20, Terminate Program, instead of BIOS interrupt int 10 withing the clearscreen function.

EDIT: but why don't you use an assembler for this? Try NASM for example. Also, this program: Tech, will help you with finding the right DOS or BIOS function.

渡你暖光 2024-10-12 02:00:33

您正在尝试调用硬件中断(int 20)。由于受保护模式的影响,您将无法进入模式 20。换句话说,Windows 将阻止您直接与硬件通信。

You are trying to call a hardware interrupt (int 20). Because of protected mode, you're not going to be able to enter mode 20. In other words, Windows is going to block you from talking to the hardware directly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文