Я сыт по горло этим. Некоторое время я пытался овладеть сборкой, но мне кажется, что я пишу не для языка, а для своего компилятора.
Я использовал этот учебник , и до сих пор он дает мне ад. Я использую NASM, что может быть проблемой, но я подумал, что это был самый популярный. Я просто пытаюсь освоить самый общий вид сборки, поэтому я решил изучить x86. Я продолжаю сталкиваться с глупыми ошибками, такими как неспособность увеличить переменную. Вот последний вариант: невозможно использовать div.
mov bx, 0;
mov cx, 0;
jmp start;
start:
inc cx;
mov ax, cx;
div 3; <-- invalid combination of opcode and operand
cmp ah,0;
jz totalvalue;
mov ax, cx;
div 5; <-- invalid combination of opcode and operand
cmp ah, 0;
jz totalvalue;
cmp cx, 1000;
jz end;
totalvalue:
add bx,cx;
jmp start;
jmp end;
end:
mov ah,4ch;
mov al,00;
int 21h;
Стоит ли менять компиляторы? Кажется, что разделение должно быть стандартным. Нужно ли читать два учебника (один на NASM, а другой на x86?). Любая конкретная помощь по этой проблеме?