Я новичок в ассемблере, и это некоторый код, который я не понял, надеясь, что кто-то поможет с этим.
DATA SEGMENT
VALUES DB 1,2,3,4,5,6,7,8,9
ITEM DB 6
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DX,AX
LEA SI,VALUES
MOV AL,ITEM
COMPARE: CMP AL,[SI]
JZ Found
INC SI
LOOP COMPARE
CLC
JMP EXIT
Found: STC
EXIT: MOV AH,4CH
INT 21H
ENDS
CODE END
Эта программа должна искать число (6)
среди 1,2,3,4,5,6,7,8,9
Я понимаю, как это работает в целом, но у меня есть несколько вопросов:
- Почему мы использовали
CLC
и STC
??Я знаю, что они помещают CF
в ноль и единицу, но почему мы его используем ?? - Почему мы использовали
MOV AH,4CH
после знака EXIT
?? После метки запуска почему мы сказали следующее:
MOV AX, DATA
MOV DX, AX
Почему немы просто говорим : MOV DX,DATA
Наконец, кто-то может предложить хорошую книгу для изучения сборки ??