Как вывести число в ассемблере
Перейти к содержимому

Как вывести число в ассемблере

  • автор:

Как вывести число в ассемблере

Кто-нибудь подскажите как на экран вывести число в Ассемблере

Например такой код:
mov AX,6
add AX,5

как вывести результат находящийся в AX

(Если из АХ совсем никак, то хотябы используя переменную, мне важно просто посмотреть результат арифметических действий)

Пользователь
Регистрация: 25.08.2008
Сообщений: 51

попробуй так.
Ассемблбер давно забросил, так что не полностью уверен в правельности

mov bx, ax
mov ah, 09h
mov dx, bx
int 21h

Последний раз редактировалось Slicker; 25.08.2008 в 12:54 .
Регистрация: 09.01.2008
Сообщений: 26,229

нет, так не получится!
функция 09 int 21 выводит строку, адрес которой в dx:

.model small .code F3 db 13,10, ' Hello, World$' start: push cs pop ds mov ah,09h lea dx, F3 int 21h exit: mov ah, 4ch int 21h end start

если надо вывести один символ, то можно воспользоваться функцией 02 int21
а вот как вывести содержимое регистра AX — я затрудняюсь подсказать. ;-(

Serge_Bliznykov
Посмотреть профиль
Найти ещё сообщения от Serge_Bliznykov

добрый няша
Регистрация: 29.10.2006
Сообщений: 4,804

для вывода числа, надо сначала преобразовать его в строку, а потом вывести.
уже обсуждалось http://programmersforum.ru/showthread.php?t=20070

[Программирование на ассемблере на платформе x86-64]

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти и вывести все слова,у котоpых число гласных букв пpевышает число согласных. Briz Помощь студентам 2 11.05.2008 00:56
Ввести число N и определить делится ли оно без остатка на число M (VBA) Ivanich Microsoft Office Excel 7 24.04.2008 19:43
ВВести десятичное число N и вывести таблицу чисел от 1 до N и их двоичный эквивалент XpideX Общие вопросы C/C++ 5 04.01.2008 19:30
Число N, заменить одну из его цифр, чтобы получилось число, max близкое к некоторой степени двойки urgu_st Помощь студентам 13 23.10.2007 09:14
как вывести число с ограниченным количеством цифр после запятой? delphi Ensoph Помощь студентам 1 02.10.2007 07:50

TASM вывод числа

пример вывода

Вводятся числа в программу, после чего с ними происходит математика. При выводе итогового числа в консоль получаю различные смайлики Как можно это исправить? ниже код файла .asm

model small .stack 100h .data x db 0 a db 0 y1 db ? y2 db ? y db ? ySmall db 0 message1 db 13,10,"Введите x: $" flag db 0 .code start: mov ax,@data mov ds,ax mov ah,9h lea dx,message1 int 21h mov ah,1 int 21h input: mov ah,1 int 21h AfterPress: cmp al,13 je endInput sub al,30h mov bl,al mov bh,10 mov al,x xor ah,ah mul bh add al,bl mov x,al loop input endInput: mov ah,2 mov dl,x int 21h mov ah,10h int 16h mov ax,4c00h int 21h end start 

Отслеживать

49.3k 17 17 золотых знаков 57 57 серебряных знаков 101 101 бронзовый знак

задан 6 окт 2023 в 20:02

100 8 8 бронзовых знаков

Сам файл с кодом в какой кодировке? Может нужно кодировку файла в консольную cp866 перевести. У вас судя по двухбайтовости каждого русского символа может UTF-16 какая-нибудь? Козябрами у вас слово «Введите» напечаталось, из-за него нужно кодировку поменять.

Как в ARM ассемблере вывести значение числа?

Регистр у нас 32-битный, может принимать значения до 4’294’967’296, это всего десять цифр. Значит, резервируем массив из 11 байтов, последний забиваем нулём (т.е. ‘\0’ — тут бэкслеш); по некоторым соображениям, имеет смысл взять 12 байт, тогда перед цифрами заведомо будет пробел, разделяющий числа.
Или не надо забивать последний байт нулём, если там передаётся размер строки.

Затем берём регистр, делим его на десять.
Остаток отделения — это последняя цифра. Прибавляем к этому остатку от деления ‘0’ (код цифры «ноль» — без бэкслеша) — получаем символ последней «буквы» нашей строки.
Целую часть от деления помещаем в тот же регистр, и в цикле повторяем операцию — получаем предпоследнюю цифру и так далее.
Когда целая часть от деления стала нулём — то всё до начала строки забиваем пробелами.

С шестнадцатеричными цифрами и проще, и сложнее.
Проще — делить. Остаток от деления получается операцией «AND 0x0F», целая часть деления получается сдвигом » Сложнее — получать цифры. От «0» до «9» — получаются прибавлением того же ‘0’, а вот от «A» до «F» надо прибавлять «‘A’-0xA».

А распечатать строку — мы умеем.

PS: Старею, потихоньку забываю тонкости. А когда-то я активно любил это дело.

Вывод числа на экран

Author24 — интернет-сервис помощи студентам

вроде вот вывод на экран, но выводит какую-то дичь. Пробовал выводить через 9 функцию из прерывания 21h, но там вообще какая-то жесткая дичь.
Вообщем, мне нужная простая часть кода(не нужно писать новый код), которая выводит rez на экран. Смотрел другие обсуждения по этой теме, там все для меня сложно, ничего не понятно, не прошло еще даже недели, с тех пор как я начал изучать ассемблер.

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Вывод числа на экран
Подредактируйте прогу. я кажись все правильно сделал но при выводе ответа на экран. выводится.

Вывод числа на экран
Привет всем! при сложение двух надо вывести на экран вот код SECTION .data mov AH, 3 ; mov.

Вывод числа на экран
Скажите, а как вывести на экран число , " " и ‘\n’ во встроенном ассемблере. (основня программа на.

Вывод числа на экран
Результат вывести на экран в шестнадцатеричном виде. Результат вывести на экран в двоичном виде. .

7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380

Лучший ответ

Сообщение было отмечено eremeevskij как решение

Решение

Тут же примеров до дури. https://www.cyberforum.ru/asse. 54461.html
Регистрация: 21.12.2013
Сообщений: 20

1 2 3 4 5 6 7 8 9 10
OutInt proc aam add ax,3030h mov dl,ah mov dh,al mov ah,02 int 21h mov dl,dh int 21h OutInt endp

Этот код не работает, у меня ничего не выводит при запуске exe-шника.

Добавлено через 12 минут
Все я решил вопрос

Регистрация: 11.11.2019
Сообщений: 2

Если не ошибаюсь все эти прерывания выводят на экран не (5 + 4 = 9), а символ с ascii кодом 9 если же ты захочешь вывести символ 9 то в rez должно было лежать 39h ну или 57 в десятичной.

6770 / 2739 / 384
Регистрация: 17.02.2013
Сообщений: 4,048
Ну дык там

ЦитатаСообщение от eremeevskij Посмотреть сообщение

add ax,3030h
чтобы превратить 0009 в ascii коды 3039h
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Вывод числа из (DX:AX) на экран
Дана функция Y=(3x^3-120)^2 +9x, область допустимых значений строго от 0 до 7, при вводе чисел от 0.

Вывод на экран 32-разрядного числа
В данной программе необходимо реализовать правильное умножение большого числа на 8. Работаю в TASM.

Вывод на экран числа со знаком
Проверка на отрицательное числоmov ah, a ;в регистр ah записываем значение а mov al, b ;в регистр.

Вывод числа на экран из регистра.
Доброго времени суток. Подскажите,пожалуйста,как можно число,записанное например в регистр ax в.

Или воспользуйтесь поиском по форуму:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *