169 похожих чатов

Подскажите почему некорректно выводит результат выполнения? Само задание звучит так:

Найти целочисленное значение функции y=(x^3-5)/(x+1) при x=7.
.model small
.stack 100h

.data
x dw 7 ; Переменная для хранения значения x
y dw ? ; Переменная для результата

.code
main proc
mov ax, @data
mov ds, ax

; Вычисление y=(x^3-5)/(x+1)
mov ax, x ; Загружаем значение x в регистр AX

imul ax, x ; AX = x^2
imul ax, x ; AX = x^3

sub ax, 5 ; AX = x^3 - 5

mov bx, x ; BX = x
inc bx ; BX = x + 1

cwd ; Расширяем AX до DX:AX для деления
idiv bx ; DX:AX / BX, частное в AX, остаток в DX

mov y, ax ; Сохраняем результат в y

mov ah, 02h
mov dl, '0'
add dl, y
int 21h

mov ax, 4C00h
int 21h

main endp

end main

Получаю такой результат как на скрине.

13 ответов

5 просмотров

Правильный результат. 91 ('[') = 48 ('0') + 43.

IMUL использует только один операнд типа: IMUL AX

Влад- Автор вопроса
s54820
Правильный результат. 91 ('[') = 48 ('0') + 43.

А что мне в коде надо поменять чтобы выводило именно числом а не символом? Я не пойму

Влад
А что мне в коде надо поменять чтобы выводило имен...

Ну у тебя же в результате две цифры, а ты выводишь одну. Дели на 10, выводи частное и остаток.

Влад- Автор вопроса
s54820
Ну у тебя же в результате две цифры, а ты выводишь...

Так исправил что теперь вообще ничего не выводит

Вывод целого числа - отдельная сложная тема

Влад- Автор вопроса
The Bird of Hermes
Вывод целого числа - отдельная сложная тема

Да я уже вроде как сделал, но результат неправильный. Выводит 2, хотя должно быть совсем другое число. Что у меня не так можете посмотреть? .model small .386 .stack 100h .data x dw 7 ; Переменная для хранения значения x y dw ? ; Переменная для результата .code main proc mov ax, @data mov ds, ax ; Вычисление y=(x^3-5)/(x+1) mov ax, x ; Загружаем значение x в регистр AX imul ax, x ; AX = x^2 imul ax, x ; AX = x^3 sub ax, 5 ; AX = x^3 - 5 mov bx, x ; BX = x inc bx ; BX = x + 1 cwd ; Расширяем AX до DX:AX для деления idiv bx ; DX:AX / BX, частное в AX, остаток в DX mov y, ax ; Сохраняем результат в y ; Выводим результат (частное и остаток) mov ah, 02h ; Функция вывода символа ; Вывод частного (целой части) mov ax, y idiv ax, 10 ; Делим на 10, частное в AX, остаток в DX add dl, '0' ; Преобразование остатка в символ int 21h ; Вывод остатка mov dl, '0' mov ah, 02h ; Восстанавливаем значение AH add dl, ah ; Добавляем значение AH к символу int 21h mov ax, 4C00h int 21h main endp end main

Влад
Да я уже вроде как сделал, но результат неправильн...

Вообще я бы сделал так, если тебе надо вывести двузначное число cwd idiv ax, 10 add al, '0' int 29h add dl, '0' mov ah, 02h int 21h

Влад
Да я уже вроде как сделал, но результат неправильн...

А вот эта строчка add dl, '0' int 21h Вообще может вести себя непредсказуемо, потому что ты не указываешь, какую функцию прерывания выполнять. 21h многофункциональное прерывание

Влад- Автор вопроса

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Кто-нибудь знает, как считается нагрузка на цпу? И что такое вообще "нагрузка на цпу"? вот, например, есть у цпу какой-то clock, настроенный на 3 ГГц --- Что значит "нагрузка...
Toideng
15
Можно ли написать свою библиотеку "socket" на каком либо языке ассемблера с нуля не используя сишние библиотеки ? Или это самоубийство ?
123🪐
15
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
{!! $modx->runSnippet( 'multiTV',[ 'tvName'=>'slider-main1', 'docid'=>'[*id*]', 'tplConfig'=>'', 'display'=>'4', 'offset'=>'0', 'rows'=>'all', 'ra...
Роман С
4
Всем привет! поделитесь, пож-та, как кто дебажил / решал проблему с 504 Time out ошибкой от nginx, когда стучишься на свой vapor сервер? в логах /var/log/nginx/error.log е...
Paul
24
Карта сайта