0

我想编写一个程序,通过直接写入视频内存来显示 ascii 符号。

.model tiny
.stack
.data
.code
main: 

mov ax, b800h
mov ds, ax

mov aL, 'x'
mov es, bx
mov es:[20], aL

end main

当我尝试使用 TASM 编译时出现此错误

"Undefined symbol: B800H"
4

1 回答 1

3

在它前面放一个0,这样 TASM 就可以知道它是一个数值而不是一个符号:

mov ax, 0b800h

您似乎还缺少从您的程序返回的任何内容。没有它,很难说.之后会运行什么mov es:[20], al代码,但我怀疑它不会很漂亮。

你需要像int 21, function 4c这样的东西。我一直发现Ralf Brown 的中断列表对于这类事情非常宝贵。


可能还想考虑转移到过去十年中某个时候一直在积极维护的工具的可能性:-)

TASM 5 于 90 年代发布,并在 2002 年左右进行了修补,并且不支持从那时起完成的许多新内容(MMX、SSE 等)。我个人最喜欢的是 NASM,但还有许多其他选择。

于 2013-04-07T08:55:33.320 回答