我正在尝试编写一个打印名字的汇编语言程序 - 例如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”。但是,当我尝试编写输出
的程序时
托马斯,它不起作用。我有什么:
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 simulator上运行它。我错过了一些非常明显的东西吗?在使用CHARO命令时,是否需要开始使用特定的十六进制值 - 例如,0x0007?提前感谢您的建议。
答案 0 :(得分: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
答案 1 :(得分: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