0
我刚刚尝试在x86程序集中编写我的第一个程序,我不知道为什么,但它没有达到我想要的。没有错误,没有通信,但在执行'执行'后程序不能打开。我希望这些程序添加两个变量并发回他们的总和。这里是代码:汇编程序 - 添加两个变量
.386
.model flat, stdcall
option casemap:none
include windows.inc
include user32.inc
include kernel32.inc
includelib user32.lib
includelib kernel32.lib
.data
a dw 1h
b dw 2h
z dw 01 dup(?),0
.data?
.code
start:
mov ds, ax
mov ax, a
mov bx, b
clc
add ax, bx
mov edi, offset z
mov [edi], ax
mov ah, 09h
mov dx, z
int 21h
mov ah, 4ch
int 21h
end start
请帮助我:C
目前还不清楚您是否试图将其编译为16位代码。 (如果是这样,为什么中间会有EDI?)。你写的东西看起来像旧的DOS时代的装配,它不会在任何现代系统上运行。如果你想学习现代装配,我建议你看看最近的教程/书籍。 – tux3
您似乎正在创建一个Windows可执行文件,但代码是用于DOS的。这是行不通的。找到一个Windows程序集教程(IIRC MASM32包含大量的示例代码)。 – Michael
请注意,如果你坚持使用DOS中断,那么DOSBox应该仍然可以运行。 – tux3