Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Kelt
3 / 3 / 0
Регистрация: 13.06.2011
Сообщений: 54
1

Простой вывод двоичных символов

30.04.2013, 22:09. Просмотров 904. Ответов 3
Метки нет (Все метки)

Здравствуйте! Тему вывод чисел в разных системах я читал, вывод вобщем то и не требуется...
Вопрос в следующем - вот простой код вывода какой-либо переменной или числа :
Assembler
1
2
3
4
5
6
7
8
9
    mov bl, 2h ; число\переменная в bl
    mov cx, 16; кол-во чисел для вывода
    M6:
    xor dx, dx
    sal bx, 1 ;арифм сдвиг (в данном случае получается 4),мне не понятен этот ход
    adc dl, 30h ; сложение с переносом, опятже зачем в dl 30?
    mov ah, 2h ;вывод
    int 21h
    loop M6
Так вот, код работает,очень хорошо. Но мне кардинально непонятны строки с 5 по 8 Если кто то будет так добр объяснить то буду благодарен!

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

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2013, 22:09
Ответы с готовыми решениями:

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

Вывод на экран двоичных чисел
Организацию циклических повторов мы доверяем инструкции LOOP: 0ABD:0100 B7B7 MOV BH,B7...

Вывод на экран таблицы ASCII символов в рамке из символов псевдографики
Помогите пожалуйста

Перекодировка с кириллицы на латиницу по правилу простой замены символов
Нужно сделать программу, чтобы перекодировать с кириллицы на латиницу по правилу простой замены...

Перевод набора двоичных символов в символ char
Реализую алгоритм Фано. Собственно, сам алгоритм работает хорошо, выводит для каждого символа его...

3
Полный 30h
Эксперт быдлокодинга
2113 / 448 / 61
Регистрация: 04.11.2010
Сообщений: 1,226
30.04.2013, 22:37 2
Строка 5 DX xor DX побитное ИЛИ в данном случае обнуляет регистр т.к. xor любого числа самого с собой всегда даёт ноль.
Строка 6 сдвигает все биты в регистре влево в данном случае на один разряд справа заходит ноль т.е. твои 2h в BL они же 00000010b в двоичном представлении становятся 00000100b или 4h
Строка 7 складывает число 4h и 30h для того что бы получить условный код цифры 4 для вывода на монитор. У каждой буквы или цифры есть свой код, у цифры 4 это 34h
http://ru.wikipedia.org/wiki/ASCII тут коды можешь посмотреть для вывода на экран.
Строка 8 загружает условный код 2h для прерывания int 21h. Этот код обозначает что последующее прерывание должно вывести символ находящийся в DL на дисплей. Подробней тут http://assembler-src.blogspot.ru/2010/04/21h-dos.html
1
Mikl___
Автор FAQ
13745 / 6491 / 650
Регистрация: 11.11.2010
Сообщений: 11,710
01.05.2013, 06:54 3
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
mov, Х ; здесь может быть любое число от 0 до 65535
    mov cx, 16; кол-во чисел для вывода
M6: mov dl,30h; место под результат, 
;при выводе на экран здесь будет или ноль с ASCII-кодом 30h или единица с ASCII-кодом 31h
    shl bx, 1 ;сдвигаем число Х на один разряд влево пока единицы, 
;которые там находятся не попадут во флаг переноса (Carry Flag или CF)
    adc dl,0 ; сложение нуля с переносом, если CF=1 значит был единичный разряд и DL=31h 
;если CF=0 значит в очередном разряде был ноль и DL=30h
    mov ah, 2; при выводе 2-ой функцией 21h прерывания на экране появится 
;содержимое регистра DL, то есть "0" или "1"
    int 21h
    loop M6; так вывыдутся все 16 разрядов числа которое мы поместили в регистр ВХ
1
Kelt
3 / 3 / 0
Регистрация: 13.06.2011
Сообщений: 54
01.05.2013, 08:44  [ТС] 4
Блин спасибо Теперь все понятно практически
Благодарю!
0
01.05.2013, 08:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2013, 08:44

Вывод в двоичных из двоичного файла
Мне нужно вывести информацию находящуюся в двоичном файле но при работе программы вылезает ошибка...

Ввод/вывод двоичных файлов
Нужно чтоб первый создаваемый файл был двоичным и данные в нем в двоичном режиме Вот мой код...

Ввод и вывод строки символов с заменой каждой цифры (N) на последовательность из N символов
Здравствуйте.Помогите написать программу ввода и вывода строки символов с заменой каждой цифры (N)...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru