我正在尝试学习汇编语言,目前我对不同的汇编程序以及如何正确运行.bin文件有疑问
以下是我在emu8086中使用的代码:
org 100h
mov bx, HELLO_MSG
call print_string
mov bx, GOODBYE_MSG
call print_string
jmp $
print_string:
pusha
mov ah, 0x0e
loop:
mov al, [bx]
cmp al, 0
je return
int 0x10
inc bx
jmp loop
return:
popa
ret
HELLO_MSG:
db 'Hello, World!', 0
GOODBYE_MSG:
db 'Goodbye!', 0
它运作得很好。
然而,当我使用nasm来组装它时(没有org 100h
,并且添加
times 510 -( $ - $$ ) db 0
dw 0xaa55
最后),它只是不起作用。我已经尝试了许多其他选项让它在屏幕上写一个字符串行,但没有成功。
我开始怀疑我在运行此代码的过程中做错了什么。这些是我的步骤:
使用此命令使用cmd组装此文件:
(例如)nasm G:\ nasm \ hello.asm -f bin -o G:\ nasm \ hello.bin
使用UltraISO制作.iso图像,我将这个hello.bin文件放入其中并将其设置为启动文件(通常可以正常工作)
PS。我在Win7 64bit上 提前感谢您提供的任何帮助