Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программирование на Assembly

Ярослав Дудкин Ученик (111), открыт 1 неделю назад
товарищи помогите, как в ассемблере посчитать выражения 6x^2+x-1; 3x^2+8x-3
что-то пробовал писать, но как-то безуспешно
в odin должно быть 6x^2+x-1, а в dva 3x^2+8x-3
include "emu8086.inc"
org 100h

menu:
printn "1: reshit' 6x^2+x-1 "
printn "2: reshit' 3x^2+8x-3 "
printn "3: vykhod"

call pthis
db 13,10,"viberite tsifru deystviya " , 0
call scan_num
mov dx, cx

cmp dx, 1
jz odin
cmp dx, 2
jz dva
jmp oshibka

odin:
call pthis
db 13,10,"Vvedite znachenie x: ", 0
call scan_num



call pthis
db 13,10,"otvet: " , 0
call print_num
jmp menu

dva:
call pthis
db 13,10,"Vvedite znachenie x: ", 0
call scan_num


call pthis
db 13,10,"otvet: " , 0
call print_num
jmp menu

oshibka:
call pthis
db 13,10,"ne korrektniy vvod" , 0
jmp menu

ret

define_scan_num
define_pthis
define_print_num_uns
define_print_num
end
3 ответа
STALKER Просветленный (41301) 1 неделю назад
Здесь к сожалению, нет таких специалистов. Только питон с gpt.
На manhunter вроде-бы была статейка.

Зачем результат считываешь из ecx, если функция вернет результат в eax?
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (245611) 1 неделю назад
попробуй так


 include "emu8086.inc" 
org 100h

menu:
printn "1: Решить 6x^2 + x - 1 "
printn "2: Решить 3x^2 + 8x - 3 "
printn "3: Выход"

call pthis
db 13,10,"Выберите цифру действия: ", 0
call scan_num
mov dx, cx

cmp dx, 1
jz odin
cmp dx, 2
jz dva
jmp oshibka

odin:
call pthis
db 13,10,"Введите значение x: ", 0
call scan_num
mov ax, cx
mov bx, ax
mul bx ; умножение на x
add ax, ax ; умножение на 2
add ax, bx ; прибавление x
sub ax, 1 ; вычитание 1
call print_res
jmp menu

dva:
call pthis
db 13,10,"Введите значение x: ", 0
call scan_num
mov ax, cx
mov bx, ax
mul bx ; умножение на x
add ax, ax ; умножение на 2
add ax, bx ; прибавление x
mov bx, 8
add ax, bx ; прибавление 8x
sub ax, 3 ; вычитание 3
call print_res
jmp menu

oshibka:
call pthis
db 13,10,"Некорректный ввод", 0
jmp menu

print_res:
call pthis
db 13,10,"Результат: ", 0
call print_num
ret

ret

define_scan_num
define_pthis
define_print_num_uns
define_print_num
end
Ярослав ДудкинУченик (111) 1 неделю назад
по идеи должно получиться 25, но почему-то нет
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (245611) Ярослав Дудкин, не надо постить код картинками. Тогда решение проблемы будет проще
Сверхразум Просветленный (47335) 1 неделю назад
 include “emu8086.inc”  
org 100h

menu:
printn "1: reshit’ 6x^2+x-1 "
printn "2: reshit’ 3x^2+8x-3 "
printn “3: vykhod”

call pthis
db 13,10,"Viberite tsifru deystviya: " , 0
call scan_num
mov dx, ax ; Хранение результата выбора пользователя в DX

cmp dx, 1
je odin
cmp dx, 2
je dva
jmp oshibka

odin:
call pthis
db 13,10,"Vvedite znachenie x: ", 0
call scan_num
mov bx, ax ; BX = x

mov ax, bx ; AX = x
mul bx ; DX:AX = xx
mov cx, ax ; CX = x^2
mov ax, cx
mov bx, 6
mul bx ; AX = 6x^2
mov bx, ax ; BX = 6x^2
add bx, cx ; BX = 6x^2 + x
add bx, -1 ; BX = 6x^2 + x - 1

call pthis
db 13,10,"otvet: " , 0
mov ax, bx
call print_num
jmp menu

dva:
call pthis
db 13,10,"Vvedite znachenie x: ", 0
call scan_num
mov bx, ax ; BX = x

mov ax, bx ; AX = x
mul bx ; DX:AX = xx
mov cx, 3
mul cx ; AX = 3x^2
mov si, ax ; SI = 3x^2
mov ax, bx
mov cx, 8
mul cx ; AX = 8x
add ax, si ; AX = 3x^2 + 8x
sub ax, 3 ; AX = 3x^2 + 8*x - 3

call pthis
db 13,10,"otvet: " , 0
call print_num
jmp menu

oshibka:
call pthis
db 13,10,“Ne korrektniy vvod” , 0
jmp menu

ret

; Определения функций emu8086
define_scan_num
define_pthis
define_print_num_uns
define_print_num
end
Ярослав ДудкинУченик (111) 1 неделю назад
выдал ошибку о некорректном вводе
Похожие вопросы