繁体   English   中英

使用FASM在装配编程中打印

[英]printing in assembly programming using FASM

我正在尝试使用以下代码来打印消息:

org 100h
start:
    jmp begin

begin:
    mov ah, 9
    mov dx, msg
    msg db 'Ascii sign:.$'
    int 21h

finish:
    mov ax, 4c00h
    int 21h

它可以编译,但什么也不显示。 但是,如果将“ msg db'Ascii sign:。$'”行移到“ jmp begin”下方,则该消息将能够显示。

我想知道背后的逻辑。 这在我声明消息的地方会有所不同吗?

这只是出于好奇,谢谢!

是。 现在,在代码中间定义了msg ,CPU将尝试在其中执行它。 通常,您想在数据段中分别定义数据。 我不记得FASM的语法,但是使用MASM或TASM,通常会执行以下操作:

.model small
.data

msg db 'ASCII sign: .$'

.code
main proc
     mov ah, 9
     mov dx, offset msg
     int 21h
     mov ax, 4c00h
     int 21h
main endp
     end main

如果确实必须在代码部分中包含字符串,则只需跳过它们即可。

begin:
    mov ah, 9
    mov dx, msg
    jmp overstring
    msg db 'Ascii sign:.$'
overstring:
    int 21h

finish:
    mov ax, 4c00h
    int 21h

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM