Как исправить данные ошибки - Assembler
Формулировка задачи:
Есть задание: Найти все ненулевые числа из массива, состоящего из десяти однобайтовых чисел, посчитать их количество и поместить это число на место первого элемента массива.
Код, который я написал:
Но компилятор выдает ошибки
Warning: Laba.asm(30) Pointer expression needs brackets
Error: Laba.asm(30) Operand types do not match
Error: Laba.asm(44) Too dew operands to instruction
Warning: Laba.asm(44) Pointer expression needs brackets
Не могу исправить
ideal
model small
P386
SEGMENT _stack para use16 stack 'stack'
db 100h dup(?)
ENDS _stack
SEGMENT data para use16 public 'data'
tabsb db 1, 0, 3, 7, 0, 2, 0, 0, 4, 6
ENDS data
SEGMENT code para use16 public 'code'
ASSUME cs:code,ds:data,es:data,ss:_stack
proc main
; inicializaciya ds, es
mov ax, data
mov ds, ax
mov es, ax
; ischem nulevye elemnty v massive
mov si, 0 ; j
mov di, 0 ; i
cycle:
cmp si, 9 ;
je exit ;
mov ax, tabsb[si];
cmp ax, 0; сравниваем текущий элемент массива с 0
je nol ;
inc si;
jmp cycle ;
nol:
inc di;
inc si;
jmp cycle;
exit:
mov si, 0;
mov tabsb[si], di;
; konec programmy
mov ax, 4C00h
int 21h
endp main
ENDS code
END mainРешение задачи: «Как исправить данные ошибки»
textual
Листинг программы
masm mov ax, tabsb[si]; ideal