![]() |
#2
burningstyle2010-07-25 15:43
|

assume cs:code1,ds:data1,ss:stack1
data1 segment
sz: db '1975','1976','1977','1978','1979','1980','1981','1982'
db '1983','1984','1985','1986','1987','1988','1989','1990'
db '1991','1992','1993','1994','1995'
;;;;;;;;;以上为:21年的21个字符串;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
income:dd 16,22,382,1356,2390,8000,16000,24486,50065,97479
dd 140417,197514,345980,590827,8003530,1183000,1843000
dd 2759000,3753000,4649000,5937000
;;;;;;;;;以上为:21年,每年的总收入;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
num: dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793
dw 4037,5635,8226,11542,14430,15257,17800
;;;;;;;;;以上为:21年,每年公司雇员的个数;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
data1 ends
table segment
db 21 dup('0000000000000000')
table ends
stack1 segment
db 16 dup(0)
stack1 ends
code1 segment
start:mov ax,data1
mov ds,ax
mov dx,table
mov ax,stack1
mov ss,ax
mov sp,16
mov di,0
mov cx,27
n:push cx
mov cx,4
nian:mov dx:[di],ds:[di]
inc di
loop nian
mov dx:[di],' '
add di,16
pop cx
loop n
mov ax,4c00H
int 21H
code1 ends
end start
呵呵,程序还没写完,我就是想问一下,汇编是不是只能有一个ds指向的数据段,其它寄存器指向的数据段(table)都不认啊,就算是显式定位也不行啊,data1 segment
sz: db '1975','1976','1977','1978','1979','1980','1981','1982'
db '1983','1984','1985','1986','1987','1988','1989','1990'
db '1991','1992','1993','1994','1995'
;;;;;;;;;以上为:21年的21个字符串;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
income:dd 16,22,382,1356,2390,8000,16000,24486,50065,97479
dd 140417,197514,345980,590827,8003530,1183000,1843000
dd 2759000,3753000,4649000,5937000
;;;;;;;;;以上为:21年,每年的总收入;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
num: dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793
dw 4037,5635,8226,11542,14430,15257,17800
;;;;;;;;;以上为:21年,每年公司雇员的个数;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
data1 ends
table segment
db 21 dup('0000000000000000')
table ends
stack1 segment
db 16 dup(0)
stack1 ends
code1 segment
start:mov ax,data1
mov ds,ax
mov dx,table
mov ax,stack1
mov ss,ax
mov sp,16
mov di,0
mov cx,27
n:push cx
mov cx,4
nian:mov dx:[di],ds:[di]
inc di
loop nian
mov dx:[di],' '
add di,16
pop cx
loop n
mov ax,4c00H
int 21H
code1 ends
end start
编译后,说“nian:mov dx:[di],ds:[di]”,“mov dx:[di]”
error A2096:segment,group,or segment register expected
是什么意思啊,难道是数据段没定义?
到底怎么回事啊,呵呵,进行不下去了啊
[ 本帖最后由 burningstyle 于 2010-7-25 20:06 编辑 ]