【问题标题】:How to terminate the program Assembly Language如何终止程序汇编语言
【发布时间】:2021-03-05 11:05:49
【问题描述】:

我被分配使用以下数据执行任务,并在以下每条指令之后找出标志的值,但我希望我的程序在 ADD BX,0xF001 之后终止;因为我使用了 INT 0x21 指令,但它没有并且继续,因此标志的答案会有所不同。我必须使用 MOV AX,4C00H 指令吗?

ORG 0x0100
MOV AX, 0x1254 ;
MOV BX, 0x0FFF ;
ADD AX, 0xEDAB ;
ADD AX, BX ;
ADD BX, 0xF001 ;
INT 0x21

【问题讨论】:

    标签: assembly dos dosbox


    【解决方案1】:

    我必须使用 MOV AX,4C00H 指令吗?

    是的,你知道。这应该在您正在阅读的任何文档中明确说明;如果没有,Ralf Brown Interrupt List 是一个很好的资源。

    INT 0x21 用于 DOS 的所有系统服务:访问文件、分配内存、运行其他程序等等。 AH 中的值(此处为 4Ch)是它知道您正在请求程序终止而不是某些其他服务的唯一方式。

    【讨论】:

    • @AnasRathore:你只需要以某种方式让4Ch 进入AH。 mov ax, 4C00h 不是魔法;您可以结合使用 add / sub 或任何结果,例如mov ah, 4Ch。你也可以使用int 0x20,这是另一种退出DOS程序的方法,它不依赖于寄存器IIRC中的任何值。
    猜你喜欢
    • 1970-01-01
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 2015-12-15
    相关资源
    最近更新 更多