2011-11-12 102 views
0

我想组装此代码,但它返回一个错误。你能帮我解决吗?谢谢。错误A2006:未定义的符号:DGROUP

INCLUDE irvine16.inc 
.data 
    array db 31h,32h,33h,34h ;use db to define array 
    COUNT = ($-array)  ;The $ operator gives the value of the location counter. 
.code 
main proc 
    mov ax, @data  ;copy the address of the data segment 
    mov ds, ax  ;@data into the DS register 
    mov bx, offset array ;the offset operator returns the 16-bit offset of a label 
    mov cx, COUNT ;set up cx register as a counter register. 
    mov ah, 02  ;use function 2 of int 21h - display char stored in dl on screen 
LP1: mov dl, [bx]  ;LP1 is a label 
    int 21h 
    inc bx 
    loop LP1  ;decrement cx; if cx not =0,loop back to label LP1. 
    mov ax, 4c00h 
    int 21h 
main endp 
end main 
+0

关键字:'OMF',而不是'COFF'。看[这里](http://stackoverflow.com/a/34403271/3512216)。 – rkhb

+0

的可能的复制[无法通过段寄存器访问的标签,在组装误差(http://stackoverflow.com/questions/1512734/cannot-access-label-through-segment-registers-error-in-assembly) – rkhb

回答

0

DGROUP是一个16位的概念,所以在PMOD的链接此话(这是16位代码,DGROUP是一个16位的概念,请确保您使用的16位链接)是真实的。

如果不解决这个问题,发挥你的内存模型(.MODEL),多斯桑托斯是16年前的我,但IIRC一些片段只在某些内存模式存在。