0

我正在尝试编写一个打印名字的汇编语言程序——例如,Thomas。程序底部应该使用.ASCII伪操作来存储字符,输出字符使用CHARO指令。当我看教科书中的一个例子时:

;Stan Warford

;January 13, 2009

;A program to output "Hi"

;

CHARO   0x0007,d   ;Output 'H'

CHARO   0x0008,d   ;Output 'i'

STOP  

.ASCII  "Hi"

.END

这会正确输出“Hi”。但是,当我尝试编写一个输出
Thomas 的程序时,它不起作用。是)我有的:

CHARO       0x0004 ,d   ;output T
CHARO       0x0005 ,d   ;output h
CHARO       0x0006 ,d   ;output o
CHARO       0x0007 ,d   ;output m
CHARO       0x0008 ,d   ;output a
CHARO       0x0009 ,d   ;output s
STOP
.ASCII      "Thomas"
.END

当我运行它时,没有任何东西输出到屏幕上。我正在尝试在Pep/8 模拟器上运行它。我在这里错过了一些非常明显的东西吗?使用 CHARO 命令时,我需要从一个特定的十六进制值开始 - 例如,0x0007?提前感谢您的建议。

4

2 回答 2

1

我从未使用过 pep8,但根据文档,这些变体将起作用:

CHARO       0x0013,d
CHARO       0x0014,d
CHARO       0x0015,d
CHARO       0x0016,d
CHARO       0x0017,d
CHARO       0x0018,d
STOP
.ASCII      "Thomas"
.END

或者:

CHARO   'T',i
CHARO   'h',i
CHARO   'o',i
CHARO   'm',i
CHARO   'a',i
CHARO   's',i
STOP  

.END

或者

STRO msg,d
STOP
msg: .ASCII "Thomas\x00"
.END
于 2016-03-08T01:29:33.757 回答
0

这是正确的代码,以名称“Miranda”为例:

    CHARO 0x0016 ,d ;output M
    CHARO 0x0017 ,d ;output i
    CHARO 0x0018 ,d ;output r
    CHARO 0x0019 ,d ;output a
    CHARO 0x001a ,d ;output n
    CHARO 0x001b ,d ;output d
    CHARO 0x001c ,d ;output a
    STOP
    .ASCII "Miranda"
    .END
于 2016-05-14T01:31:32.753 回答