回 帖 发 新 帖 刷新版面

主题:如何同时使用2个段

我已经使用ds指向table段,但是我要将data段的数据写入table段,我该怎么使用data段的数据呢,就是如何操作2个段,因为只有一个ds能做数据段寄存器,我是新手,求帮助了,具体写的如下:
assume cs:code,ds:data,ss:stack
data segment
db '1975','1976','1977','1978','1979','1981','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995';
dd 16,22,382,1756,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,903530,1183000,1843000,2759000,3753000,4649000,5937000;
dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dw 11543,14430,15257,17800;
data ends
table segment
db 21 dup('year summ ne ?? ')
table ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start: mov ax,table
 mov ds,ax
 mov cx,21
 mov bx,0
 mov bp,0
 mov di,0
s: push cx
 mov cx,4
 mov si,0 
s1: mov [bx+si],data:[bp+si]
 loop s1
 mov byte ptr [bx+4],' '
 mov word ptr [bx+5],data:[bp+84]
 mov ax,[bx+5]
 mov word ptr [bx+7],data:[bp+86]
 mov dx,[bx+7]
 add bp,4
 mov byte ptr [bx+9],' '
 mov word ptr [bx+10],data:[di+168]
 mov byte ptr [bx+12],' '
 div word ptr data:[di+168]
 add di,2
 mov [bx+13],ax
 mov byte ptr [bx+15],' '
 add bx,16
 pop cx
 loop s
 mov ax,4c00h
 int 21h
code ends 
end start 

问题补充:

出错的是这几行:
s1: mov [bx+si],data:[bp+si]
mov word ptr [bx+5],data:[bp+84]
 mov word ptr [bx+7],data:[bp+86]
 mov word ptr [bx+10],data:[di+168]
主要是如何表示data的地址,
原题是王爽的汇编语言的172面

回复列表 (共1个回复)

沙发

先看下。。。。。。。。。。。

















[url=http://www.sc115.com/vector]矢量素材[/url],[url=http://www.sc115.com/PPT]PPT模板[/url],[url=http://www.sc115.com]素材中国[/url]

我来回复

您尚未登录,请登录后再回复。点此登录或注册