|
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 29
|
||||||
С++ и асемблер19.11.2009, 13:52. Показов 3864. Ответов 25
Метки нет (Все метки)
Имееться простая программа на С++:
Как сделать вывод на экран этого члена с помощбю вставки ассемблера. • Вывод информации на экран реализовывать средствами языка ассемблера. Для упрощения алгоритма вывода на экран числовой информации использовать шестнадцатеричную систему счисления. Рекомендуется организовать алгоритм вывода чисел в отдельной функции. • В начале работы программы средствами языка ассемблера предлагать пользователю очистить экран и очищать его при необходимости. • Не завершать работу программы до тех пор, пока пользователь не нажмет клавишу на клавиатуре. Чтение символа с клавиатуры реализовать командами языка ассемблера.
0
|
||||||
| 19.11.2009, 13:52 | |
|
Ответы с готовыми решениями:
25
асемблер Асемблер Программа Асемблер |
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
| 19.11.2009, 14:09 | |
|
Вызывайте апи функции WriteConsole для вывода на консоль и ReadConsole для ввода.
0
|
|
|
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 29
|
|
| 19.11.2009, 14:12 [ТС] | |
|
можно по подробней, просто с языком не сталкивался раньше, а тут задали лабу сделать при етом не дали почти никакой информации о языке, все на самоизучение
0
|
|
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
| 19.11.2009, 14:22 | |
|
Язык тут не причем используются они так же как и в просто С++, только синтаксис другой несколько.
Вот тут есть пример работы с этими апи на чистом ассемблере. А так же в мсдн описание WriteConsole и ReadConsole
0
|
|
|
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 29
|
||||||
| 19.11.2009, 18:22 [ТС] | ||||||
|
почему в визуал студии нельзя сделать так :
0
|
||||||
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
| 19.11.2009, 18:26 | |
|
Потому что это прерывание существует только в реальном режиме. В защищенном его нет.
Как вариант можете найти досовский компилятор и пользовать это прерывание в нем.
0
|
|
|
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 29
|
|
| 19.11.2009, 18:32 [ТС] | |
|
Спасибо, просто лабу надо делать именно через прерывание, borland C++ 3.1 подойдет?
0
|
|
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
| 19.11.2009, 18:37 | |
|
Наверное да, только создавайте программу, именно для доса.
0
|
|
|
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 29
|
|
| 19.11.2009, 19:11 [ТС] | |
|
блин все равно не выполняет действия, призапуске как будто просто неучитываеться код
0
|
|
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
||||||
| 19.11.2009, 19:36 | ||||||
|
А если передавать ф-ции все необходимые параметры ?
0
|
||||||
|
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 29
|
||||||
| 19.11.2009, 20:02 [ТС] | ||||||
|
большое спасибо очень помогло.
почему тут ошибка?
0
|
||||||
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
| 19.11.2009, 20:22 | |
|
Что такое a ? Это переменная ? Если да, то она должна быть типом char, т.е. занимать 1 байт.
Еще возможно, что компилятору просто не нравится такое имя. попробуйте какое-нибудь другое, напр. pA или еще что-нибудь.
0
|
|
|
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 29
|
||||||
| 19.11.2009, 20:36 [ТС] | ||||||
Добавлено через 9 минут сделал его типом char и переименвал, убрал все сдвиги, они не выполнялись, была ошибка.выводит какуето чушь когда число больше 16 в десятичной.
0
|
||||||
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
| 19.11.2009, 20:39 | |
|
Регистр AX состоит из 2 байт и делится на две половинки ah и al каждая по байту.
Переменная A, в данном коде типа int, занимает 2 байта. Иными словами пользуйте ax, bx и т.п. в той строчке и ниже где не идет явная работа с 1 байтом. Как-то трудновато понять что же именно делает ваша программа видя только куски. Вот здесь есть перевод числа в строку и вывод ее на экран правдо с помощью прерывания int 21h.
0
|
|
|
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 29
|
||||||
| 19.11.2009, 20:45 [ТС] | ||||||
|
сейчас покажу весь текст
0
|
||||||
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
| 19.11.2009, 21:08 | |
|
Во первых данный способ сможет выводить только числа от 0 до 255 ( 0FFh), т.е. 2 знака он выводит.
Значит нужно вернуть обратно сдвиги, поменять видимо везде, кроме 42-43 строк ax, bx, cx на al, bl и cl соответственно. А кроме того перед выводом первой, сохранять вторую часть числа в стек, а после восстанавливать, иначе она потеряется.
0
|
|
|
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 29
|
|
| 19.11.2009, 21:14 [ТС] | |
|
при возвращении al,bl,cl сраз ошибка в 44 строке
0
|
|
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
| 19.11.2009, 21:30 | |
|
Что за ошибка ?
0
|
|
|
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 29
|
|
| 19.11.2009, 21:47 [ТС] | |
|
71: invalid combination of opcode and operand
А как просто вывести число не переводя его в 16-ую ситст, я думал надо просто убрать пару строк но у меня он начал выдовать звездочки)) Добавлено через 12 минут Я понял как получать числа не старше их сист исчисл, тоесть если 10-ая сист исчисл то 9 макс число, 16-ая то 15 макс число. (
0
|
|
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
| 19.11.2009, 21:55 | |
|
К чему эта ошибка даже не представляю... может в одном регистре написать shl al,4...
А насчет вывода я давал в #14 посте ссылку где есть вывод в десятеричной(и в любой другой) системе счисления.
0
|
|
| 19.11.2009, 21:55 | |
|
Помогаю со студенческими работами здесь
20
Команды Асемблер циклы на асемблер 16-ти битный асемблер Асемблер (masm)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Музыка, написанная Искусственным Интеллектом
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 .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1
У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\
А в самом низу файла-профиля. . .
|