汇编语言 段寄存器的问题 求大神 指点

zhongguojiexiaochen 2014-05-19 04:37:17
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

以上代码想在图形界中央面绘制一个矩形 但显示的是乱码 请问到底错哪了?段寄存器出问题了么?
...全文
96 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2014-05-20
  • 打赏
  • 举报
回复
你的数据是在 data 段啊,但你的程序里给 ds 赋值的是 cs=code 段;应该将 ds 指向到 data 段就可以了:
  mov  ax, data
mov ds, ax

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧