DATA SEGMENT
string0 db 10 dup (13,10),'$'
string1 db 13,10,4 dup(9,20h),'****************$'
string2 db 13,10,4 dup(9,20h),'*',14 dup(20h),'*$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
org 100h
START:
push cs
pop ds
mov ax,12h;640X480X16S图形方式
int 10h
mov si,offset string0
call show
mov si,offset string1
call show
mov si,offset string2
mov cx,5
next:
call show
loop next
mov si,offset string1
call show
mov ah,7
int 21h
mov ax,3
int 10h
mov ah,4ch
int 21h
show:
mov dx,si
mov ah,9
int 21h
ret
CODE ENDS
END START
以上代码想在图形界中央面绘制一个矩形 但显示的是乱码 请问到底错哪了?段寄存器出问题了么?
------解决思路----------------------
你的数据是在 data 段啊,但你的程序里给 ds 赋值的是 cs=code 段;应该将 ds 指向到 data 段就可以了:
mov ax, data
mov ds, ax