Assembly 为什么x86程序集打印垃圾?
我正在尝试使用tasm输出一条消息,首先使用.com程序打印出消息之外的垃圾值,然后是运行正常的.exe程序。代码如下:Assembly 为什么x86程序集打印垃圾?,assembly,x86,dos,tasm,Assembly,X86,Dos,Tasm,我正在尝试使用tasm输出一条消息,首先使用.com程序打印出消息之外的垃圾值,然后是运行正常的.exe程序。代码如下: code segment para public 'code' assume cs:code, ds:code org 100h start: jmp entry message db "Hello World! $" entry: mov ah,09h lea dx, message i
code segment para public 'code'
assume cs:code, ds:code
org 100h
start:
jmp entry
message db "Hello World! $"
entry:
mov ah,09h
lea dx, message
int 21h
mov ah,4ch
mov al,00
int 21h
code ends
end start
我的代码出了什么问题?在这里工作正常,使用dosbox.Int 21/AH=09h期望字符串位于DS:DX中。您没有设置DS。如何编译和链接?这将创建一个exe文件。要获取com文件,需要使用tlink/t。此外,您还应该使用扩展名显式运行它,以确保在exe和com同时存在的情况下真正运行所需的扩展名。不,您需要使用.asm保存它。这就是源代码。生成的程序将是name.com。这是由tlink/t自动完成的,您只需要传递该/t,然后运行相应的二进制文件。