Как исправить данные ошибки - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д