![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Регистрация: 20.12.2010
Сообщений: 7
|
![]()
Assembler.
Написать без использования прерываний BIOS и DOS подпрограмму для вывода на экран содержимого одного байта сегмента данных (адрес задан в регистре SI) в восьмеричной системе счисления на второй строке экрана (реальный режим). org 100h mov ax, 3 int 10h mov ax, 0 mov ds,ax mov si,20 mov al,[si] mov ah, 0 int 16h ret записывает 1 байт в SI теперь нужно его перевести в 8ричную системы счисления и вывести нфу на консоль может с эим хоть кто поможет? может сылки есть на такую инфу даже не могу понять что написать в коде что бы он в 8 ричную систему преводил байт нет я знаю есть вариант последовательно делить на 8 но хз как он подойдет, не знаю даже с чего продолжить=( Последний раз редактировалось AlekseiGans; 19.10.2011 в 22:01. Причина: поправка |
![]() |
![]() |
![]() |
#2 |
Регистрация: 20.12.2010
Сообщений: 7
|
![]()
ап_______ап
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,378
|
![]()
Вообще то для перевода двоичного числа в восьмеричное ничего делить в явном виде не надо. Простое разбиение двоичного числа на тройки бит.
Например сдвигаем по три раза и ловим переносы. Или строим маску (для байта) 00000111, а затем логическое И, а потом сдвигаем и снова И, и т.д.
Как-то так, ...
|
![]() |
![]() |
![]() |
#4 | |
Регистрация: 20.12.2010
Сообщений: 7
|
![]() Цитата:
Последний раз редактировалось AlekseiGans; 19.10.2011 в 20:29. |
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,378
|
![]()
Например,
1. В bx записываем число. 2. Переносим число в ax 3. Выполняем AND. 4. Получена цифра, которую надо вывести. 5. В регистр cx записываем тройку 6. Выполняем сдвиг вправо для данных в bx (помнится, что есть команда сдвига на число, которое в cx). 7. (тут должен быть подсчет числа итераций) 8. Все число обработано? 9. Да. Переходим к п.11. 10.Переходим к п.2 11. Следующие команды(тут должен быть подсчет числа итераций) Как-то так ... Под рукой нет любимой книжечки Питера Нортона "Ассемблер для ...", а сам писал на ассемблере ну очень давно...
Как-то так, ...
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 20.12.2010
Сообщений: 7
|
![]()
спасибо за инфу, буду думать, еше пока мозг в состоянии думать) щас найду книгу Питера Нортона может там чего найду еще=)
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 20.12.2010
Сообщений: 7
|
![]()
Народ ну есть кто поможет хотя бы немного не могу сообразить хотя бы помогите с началом=(
|
![]() |
![]() |
![]() |
#8 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
проблема (ну лично для меня, например) не в самом алгоритме.
проблема тут: Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#9 |
Регистрация: 20.12.2010
Сообщений: 7
|
![]()
а если использовать обращение в видео память там же не потребуеться прерывания биоса и доса ?)
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
нет не потребуется(хотя мне задача не нравится, обращение к экрану в надежде что стоит именно наш режим экрана, хотя задача учебная...)
адрес я правда не помню, ибо работал с VESA. а нашел в старом коде, 0xB8000(и еще нашел такой ужастный свой асм код ![]() Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 20.10.2011 в 13:25. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод значения числа в десятичной системе счисления | Kaizzer | Помощь студентам | 0 | 23.04.2011 14:44 |
Задача о системе коридоров | JaySee | Помощь студентам | 1 | 26.02.2011 14:37 |
непонятен сегмент данных | miracle666 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 04.12.2010 00:03 |
перенос сегмента кода за сегмент данных | Федор777 | Общие вопросы C/C++ | 2 | 20.04.2010 18:43 |
вывод числа в двоичной системе | jewels | Общие вопросы C/C++ | 12 | 11.03.2010 22:20 |