当前位置: 代码迷 >> 汇编语言 >> 汇编语言 段寄存器的有关问题 求大神 指点
  详细解决方案

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

热度:526   发布时间:2016-05-02 04:31:38.0
汇编语言 段寄存器的问题 求大神 指点
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
  相关解决方案