Значение переменной не выводится на экран - Assembler
Формулировка задачи:
Мне нужно вывести на экран максимальное абсолютное значение в массиве. Но на экран значение (LARG) почему-то не выводится, вместо него мусор... в чем причина? записывать надо именно в регистр CX
DATA SEGMENT ARR DB 1,4,2,3,9,8,6,7,5,10 LEN DW $-ARR LARG DB 0 DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX,DATA MOV DS,AX LEA SI,ARR MOV AL,ARR[SI] MOV LARG,AL MOV CX,LEN REPEAT: MOV AL,ARR[SI] CMP LARG,AL JG NOCHANGE MOV LARG,AL NOCHANGE: INC SI LOOP REPEAT MOV CH, LARG MOV AH,09h INT 21h MOV AH,4CH INT 21H CODE ENDS stk segment stack db 256 dup(0) stk ends END START
Решение задачи: «Значение переменной не выводится на экран»
textual
Листинг программы
;masm .model small .stack .DATA ARR DB 1,4,2,3,9,8,6,7,5,10 LEN DW $-ARR LARG DB 0 .CODE ; ASSUME DS:DATA, CS:CODE START: MOV AX,@DATA MOV DS,AX LEA SI,ARR lodsb; MOV AL,ARR[SI] MOV LARG,AL MOV CX,LEN _REPEAT: lodsb; MOV AL,ARR[SI] CMP LARG,AL JG NOCHANGE MOV LARG,AL NOCHANGE: INC SI LOOP _REPEAT ; для чисел от 0 до 99 MOV al, LARG db 0D4h, 0Ah; aam 10 or ax, '00' ; MOV AH,09h xchg ah, al INT 29h xchg ah, al INT 29h MOV AH,4CH INT 21H END START
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д