Как исправить ошибку, вызванную @data в коде visual studio 2019 в ASM?

#assembly #x86-16 #masm

Вопрос:

Я немного новичок в ASM. Я пытаюсь найти наименьшее значение в массиве DWORD. Я получаю ошибку A2006: неопределенный символ: DGROUP в строке 11 моего кода. Я считаю, что @data вызывает мою ошибку. Как я должен изменить свой код, чтобы решить эту проблему??? Я использую 32-разрядный код visual studio 2019. Спасибо, что уделили мне время!

  .model small .stack .data  msg1 db 0dh,0ah, 'smallest element is:


Комментарии:

1. .data это название раздела. Используйте соответствующие имена переменных, например msg1 , array , smallest

2. Я не думаю, что вы используете правильную masm версию. Вам нужен 16-битный, так как это 16-битный код DOS.

array db 2, 3, 4, 1, 0, -2, -5, 8, 6 smallest db ? .code main proc mov ax,@data mov ds,ax lea di,array mov cx,9 ; 5 times count mov al,[di] ; memory location send ‘di’ registerar data ‘al’ mov smallest,al step: ;level inc di mov bl,[di] cmp smallest,bl jle l1 ;jge= jump gratherthan equal , mov smallest,bl l1: loop step add smallest,30h ; integer to character (add30 for asii value) lea dx,msg1 mov ah,09h int 21h mov dl,smallest mov ah,02h int 21h mov ah,4ch int 21h main endp end main

Комментарии:

1. .data это название раздела. Используйте соответствующие имена переменных, например msg1 , array , smallest

2. Я не думаю, что вы используете правильную masm версию. Вам нужен 16-битный, так как это 16-битный код DOS.