[masm32] Вычисление кусочной функции - Assembler
Формулировка задачи:
Помогите найти ошибки в программе. Задание следующее-
2(x-2)+y, если 2x+y=>10
Иначе- 2x+y+1
Если задать значения
Х- 2
У- 1
То z получается 6, все работает, так как срабатывает иначе. Но если задать значения
Х- 10
У- 1
То Z должен получиться 17, а при откладке программы с этими значениями получается 56 (Выдаёт 38 в 16-ой системе). Почему программа не переходит на метку м1?
Код следующий:
Подпрограмма
x DB 2 y DB 1 z DW ? ... Start: MOV AL, x MOV BL, y Call pepa MOV CX, 10 CMP AX,CX JNB M1 ADD AX,1 JMP FIN M1: MOV AL,x MOV BL,y SUB AL,2 MOV BL,AL MOV AL,2 MUL BL MOV BH,0 ADD AX,BX Call pepa fin: mov z, AX
MOV CH,2 MUL CH MOV CX,AX MOV BH,0 ADD AX,BX
Решение задачи: «[masm32] Вычисление кусочной функции»
textual
Листинг программы
MOV CH,2 MUL CH MOV CX,AX MOV BH,0 ADD AX,BX
Объяснение кода листинга программы
- MOV CH,2 - переменной CH присваивается значение 2.
- MUL CH - переменная CH умножается на AX.
- MOV CX,AX - переменная CX получает значение AX.
- MOV BH,0 - переменной BH присваивается значение 0.
- ADD AX,BX - переменные AX и BX складываются.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д