Помогите найти ошибку. Требуется разработать программу на ассемблере (masm) для вычисления значения выражения y=(x+3)2-4x.
include io.asm ;подключение операций ввода-вывода
stack segment stack
dw 128 dup (?)
stack ends
data segment
x equ 2
y dw ?
T db 'ответ=$'
data ends
code segment 'code'
assume ss:stack, ds:data, cs:code
start:
mov ax, x
sub ax, 3
imul ax
mov bx, x
imul bx, 4
sub ax,bx
mov dx,offset T
outstr
newline-
fin: finish
Code ends
Вычислить значение выражения
Модератор: Andy
* программа вычисляет (x-3)^2 - 4x, то есть достаточно заменить sub ax, 3 на add ax, 3
* нет присвоения Y-ку результата
* outstr наверное выводит "ответ=", а где же вывод результата вычисления?
* все таки по хорошему Х должен быть переменной, а не константой
* при Х > 181 результат возведения в квадрат со знаком выйдет за границы 16 битного целого числа со знаком и вычисления будут ошибочны
* нет присвоения Y-ку результата
* outstr наверное выводит "ответ=", а где же вывод результата вычисления?
* все таки по хорошему Х должен быть переменной, а не константой
* при Х > 181 результат возведения в квадрат со знаком выйдет за границы 16 битного целого числа со знаком и вычисления будут ошибочны
It's a long way to the top if you wanna rock'n'roll