0

我想在不使用任何库的情况下显示寄存器 al 的值,我该怎么办?我应该使用哪个中断?我正在使用汇编语言(masm)并且我的程序处于实模式。

例如在保护模式下,我们使用 Irvine32 库:

mov bl , al
mov eax , 0
mov al , bl
call WriteInt    ; (showing the value of al)
4

1 回答 1

1

如果您已经安装了 Irvine 的文件,您可以使用irvine16.lib库、link16.exe同一文件夹中的 16 位链接器和ml.exeVisual Studio 的 MASM 汇编器。

测试.asm

INCLUDE (Full Path to)\Irvine16.inc
INCLUDELIB (Full Path to)\Irvine16.lib

.code
main PROC
    mov ax,@data
    mov ds,ax

    mov al, 123

    mov bl , al
    mov eax , 0
    mov al , bl
    call WriteInt

    mov ax, 4C00h
    int 21h
main ENDP

构建.cmd

@ECHO OFF
SET LIB=
PATH Path\to\VisualStudio\bin;Path\to\Irvine32

ml.exe /c /omf test.asm
link16.exe test.obj, test.exe;

只需在 Windows 的命令提示符窗口中输入build.cmd. 要运行它,您最终必须更改为 DOSBox 或类似的 DOS 模拟器。

于 2015-11-19T10:52:00.273 回答