我的代码打印出垃圾而不是所需的文本
My code prints out garbage instead of the desired text
我正在使用 16 位程序集创建一个 DOS 程序,用于关于如何对 VGA 进行编程的教育目的,我编写了一个代码来将颜色写入一些像素并打印一个字符串,代码在改变像素颜色方面表现良好,但是当我尝试打印字符串时,它打印出奇怪的字符,分配给它们
我在 DOSBox
上使用 MASM 5.00 和 Link 3.60 和 运行
这是我的代码
org 100h
.model small
.stack 100h
.data
msg db 'Hello VGA','$'
.code
main proc
mov ax, 0
mov al, 013h
int 10h
mov ah, 02h ;function code for setting cursor pos.
mov bh, 0 ;setting page number
mov dx, 0 ;setting dh, dl to row and column
int 10h
mov ah, 0ch
mov al, 00001110b
mov cx, -1
ploop:
inc cx ;x point pos.
mov dx, 0 ;y point pos.
int 10h
cmp cx, 9919
jne ploop
;keyboard services
mov ah, 00h ;read key function code
int 16h
;set cursor position
mov ah, 02h
mov bh, 0 ;Display page
mov dh, 04h ;Row
mov dl, 00h ;Column
int 10h
;print msg
mov ah, 09h
lea dx, msg
int 21h
mov ax, 4c00h
int 21h
main endp
end main
我只是 运行 你的代码,它对我来说工作得很好。尝试手动初始化数据段,在 .code
:
之后立即插入下两行
.code
mov ax, @data
mov ds, ax
.
.
.
我正在使用 16 位程序集创建一个 DOS 程序,用于关于如何对 VGA 进行编程的教育目的,我编写了一个代码来将颜色写入一些像素并打印一个字符串,代码在改变像素颜色方面表现良好,但是当我尝试打印字符串时,它打印出奇怪的字符,分配给它们 我在 DOSBox
上使用 MASM 5.00 和 Link 3.60 和 运行这是我的代码
org 100h
.model small
.stack 100h
.data
msg db 'Hello VGA','$'
.code
main proc
mov ax, 0
mov al, 013h
int 10h
mov ah, 02h ;function code for setting cursor pos.
mov bh, 0 ;setting page number
mov dx, 0 ;setting dh, dl to row and column
int 10h
mov ah, 0ch
mov al, 00001110b
mov cx, -1
ploop:
inc cx ;x point pos.
mov dx, 0 ;y point pos.
int 10h
cmp cx, 9919
jne ploop
;keyboard services
mov ah, 00h ;read key function code
int 16h
;set cursor position
mov ah, 02h
mov bh, 0 ;Display page
mov dh, 04h ;Row
mov dl, 00h ;Column
int 10h
;print msg
mov ah, 09h
lea dx, msg
int 21h
mov ax, 4c00h
int 21h
main endp
end main
我只是 运行 你的代码,它对我来说工作得很好。尝试手动初始化数据段,在 .code
:
.code
mov ax, @data
mov ds, ax
.
.
.