Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/131: Рейтинг темы: голосов - 131, средняя оценка - 4.59
0 / 0 / 1
Регистрация: 10.12.2011
Сообщений: 65
MASM

Вывод значения переменной (или содержимого регистра) на экран

10.12.2011, 14:28. Показов 26461. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

По очень простому вопросу никак не могу найти ответ. Например пара фрагментов:
Assembler
1
2
3
4
5
6
7
mov al, 5
add al, 3
mov ah, 9h
mov dx, offset string
int 21h
int 20h
string db "Сумма = ", "$"
Как вывести содержимое регистра al на экран
Или:
Assembler
1
2
3
4
5
6
7
8
mov al, 5
add y, al
mov ah, 9h
mov dx, offset string
int 21h
int 20h
string db "Сумма = ", "$"
y db 4
Как вывести содержимое переменной на экран. Дело в том, что в отладчике всё видно, а вот как результаты вывести на экран - не знаю.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.12.2011, 14:28
Ответы с готовыми решениями:

Вывод содержимого регистра AL на экран?
Как можно сделать? Добавлено через 50 минут TITLE SPO_PROJECT (COM) .MODEL SMALL .CODE...

Вывод на экран содержимого регистра bx в 16-ричном виде
Добрый вечер всем. Имеется код подсчета двоичных нулей в переменной размером двойное слово. Не могу...

Вывод содержимого регистра на экран в Windows x64
ДОСовское int 21h не работает, потому что винда не поддерживает 16-битные приложения. Есть ли...

5
273 / 268 / 11
Регистрация: 24.12.2010
Сообщений: 328
10.12.2011, 15:42
Цитата Сообщение от paltusssss Посмотреть сообщение
Как вывести содержимое регистра al на экран
Надо перевести содержимое al в десятичный вид, выделить цифры, добавить к каждой 30h и выводить, начиная со старшей. В данном случае, когда результат - всего одна цифра, достаточно просто добавить к ней 30h:
Code
1
2
3
4
5
6
    ...
    mov ah,2    ;Функция вывода символа.
    add al,30h
    mov dl,al   ;Символ должен быть в dl.
    int 21h
    ...
Цитата Сообщение от paltusssss Посмотреть сообщение
Как вывести содержимое переменной
Опять же добавить к переменной y 30h, символ '$' убрать, поставить его после y и выводить string 9 функцией.
0
0 / 0 / 1
Регистрация: 10.12.2011
Сообщений: 65
10.12.2011, 18:19  [ТС]
Цитата Сообщение от paltusssss Посмотреть сообщение
Как вывести содержимое переменной на экран.
Цитата Сообщение от Ant1971on Посмотреть сообщение
Опять же добавить к переменной y 30h, символ '$' убрать, поставить его после y и выводить string 9 функцией.
Попробовал поставить $ после y:
Code
1
2
3
4
5
6
7
8
9
   mov al, 3
   add y, al
   mov ah, 9h
   add y, 30h
   mov dx, offset string
   int 21h
   int 20h
string db "summa = ", y, "$"
y db 6
Выдает ошибку initializer magnitude too large for specified size на строку со словом string db
0
273 / 268 / 11
Регистрация: 24.12.2010
Сообщений: 328
10.12.2011, 18:53
так напишите:
Code
1
2
string  db 'summa = '
y   db 6,'$'
0
0 / 0 / 1
Регистрация: 10.12.2011
Сообщений: 65
10.12.2011, 23:00  [ТС]
Цитата Сообщение от Ant1971on Посмотреть сообщение
так напишите:
Code
1
2
string  db 'summa = '
y   db 6,'$'
Извините за надоедливость, но
во-первых:
Если 2-я функция 21-го прерывания выводит значение загруженное в dl, то получается число не может быть более 255. А что если оно более 255-ти?

во вторых:
Попробовал ввести такой код:
Code
1
2
3
4
5
6
7
8
9
10
mov ax, 1000
add ax, 657
mov y, ax
mov ah, 9h
add y, 30h
mov dx, offset string
int 21h
int 20h
string db "Сумма = "
y dw ?, "$"
Вместо результата 1657 в десятичной или 679 в шестнадцатеричной - появилась буква "й" и карточный значок "пики". Ведь команда add y, 30h изменила код с 679 на 06A9. Как же быть?
и в третьих:
Объясните пожалуйста как же мне вычесть из 32 - 121. В отладчике появляется невесть что и результат -89 не получается.

Спасибо за терпение!
0
273 / 268 / 11
Регистрация: 24.12.2010
Сообщений: 328
11.12.2011, 00:31
Во-первых, Вы уж определитесь, какая у Вас переменная, байт или слово. Если байт, то каким образом Вы собираетесь туда запихнуть 1657? Во-вторых, я же написал выше, что простое добавление 30h годится только для вывода одной цифры, если результат больше 9, надо преобразовать его в десятичный вид, далее к каждой выделенной цифре прибавлять 30h и выводить. Как это делается, подробно описано здесь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.12.2011, 00:31
Помогаю со студенческими работами здесь

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

Напишите программу для вывода на экран содержимого регистра DS
Напишите программу для вывода на экран содержимого регистра DS. Допустим, что байт, значение...

Ввод символьной строки, вывод содержимого соответствующего регистра
Необходимо ввести символьную строку,проанализировать ее.Если строка соответствует имени какого-то...

Вывод содержимого регистра
я ввел строку с клавиатуры, и проверяю каждый символ, если символ равен пробелу то я увеличиваю...

Вывод содержимого регистра
Топик про вывод целого числа непостижим для моего ума, поэтому как будет выглядеть код для вывода...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru