首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用FASM在汇编语言程序设计中打印

用FASM在汇编语言程序设计中打印
EN

Stack Overflow用户
提问于 2012-02-05 14:55:33
回答 2查看 903关注 0票数 0

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

代码语言:javascript
复制
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”下面,消息就可以显示了。

我想知道这背后的逻辑。我在哪里声明消息会有区别吗?

这只是出于好奇,谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-05 15:04:06

是。现在,msg是在代码中间定义的,CPU将尝试在其中执行它。通常,您希望在数据段中单独定义数据。我不记得FASM的语法,但是使用MASM或TASM,您通常会这样做:

代码语言:javascript
复制
.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
票数 4
EN

Stack Overflow用户

发布于 2012-02-11 08:51:46

如果你真的需要把字符串放在代码部分,那么就跳过它们。

代码语言:javascript
复制
begin:
    mov ah, 9
    mov dx, msg
    jmp overstring
    msg db 'Ascii sign:.$'
overstring:
    int 21h

finish:
    mov ax, 4c00h
    int 21h
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9147515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档