如何使用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面