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