Ошибка 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

person Waleed Ehsan    schedule 12.11.2011    source источник
comment
Ключевое слово: OMF вместо COFF. Посмотрите здесь.   -  person rkhb    schedule 21.12.2015


Ответы (1)


DGROUP — это 16-битная концепция, поэтому замечание в ссылке pmod (это 16-битный код, DGROUP — 16-битная концепция, убедитесь, что вы используете 16-битный компоновщик) верно.

Если это не решит проблему, поиграйте со своей моделью памяти (.model), Dos для меня 16 лет назад, но некоторые сегменты IIRC существовали только в некоторых моделях памяти.

person Marco van de Voort    schedule 18.11.2011