Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Assembler Интерпретировать массив из 6 байт, как массив из 3 слов http://www.cyberforum.ru/asm-beginners/thread1729123.html
Здравствуйте! Дан массив из 6 байтов, ну, например А = {1,2,3,4,5,6} Нужно, интерпретировать его как массив из 3 слов Вот я не пойму, это будет просто В = {12,34,56} или все-таки В =...
Assembler Определить количество нулей в матрице Надо написать программу в языке ассемблера 8086 которая определяет количество нулей в матрице и размер матрицы даётся с клавиатуры и числа тоже с клавиатуры http://www.cyberforum.ru/asm-beginners/thread1729068.html
Вывод символов строки в хаотичном порядке. Assembler
Всем доброго времени суток. Нужна помощь, в решение задачи по Assembler: Нужно сделать так, чтобы выводилась символы строки в хаотическом порядке (в разных столбцах и разных строчках)
Как изменить буквы на Ассемблере? Assembler
Помогите изменить Букву Н на букву И, и изменить Букву А на букву Д. Кто разбирается в Ассемблере нужна ваша помощь%-) var mode:char; begin asm mov ah,$0f int $10 mov mode,al
Assembler Теория по ассемблеру http://www.cyberforum.ru/asm-beginners/thread1728661.html
1. Не является видом регистров прикладного программиста? 1.РОН 2.Регистры отладки 3.Регистр флагов 4.аккумулятор 5.Индексные регистры 6.регистры-указатели 2.Не является регистром...
Assembler Считывание строки из файла и замена Всем привет, помогите сделать считывание из файла строки. Т.е например есть у нас файл и в нем такой текст: 1)Привет 2)Как дела 53)Окей (1) (2) подробнее
Kaligulaa
5 / 6 / 2
Регистрация: 18.05.2015
Сообщений: 124
10.05.2016, 11:26  [ТС] 0

Преобразовать двоичный код в десятичный

10.05.2016, 11:26. Просмотров 990. Ответов 6
Метки (Все метки)

Ответ

ругается на строчку mov bx,10
пишет Operand types do not match

Добавлено через 13 минут
прошу прощения, на mov ax,dl

Добавлено через 3 минуты
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
data segment para public "data" ;начало сегмента данных
message db 'Enter: $'  ; строка (приглашение для ввода двух символов с клавиатуры) 
data ends   ;конец сегмента данных
 
stk segment stack ;начало сегмента стека
db 256 dup ("?")  ;выделение памяти под стек 
stk ends          ;конец сегмента стека
 
code segment para public "code" ;начало сегмента кода
main proc   ;начало процедуры
assume cs:code,ds:data,ss:stk ;сопоставление сегментных регистров и сегментов 
mov ax,data  
mov ds,ax   ;инициализация сегмента данных через  регистр ax
mov ah,9    ;функция вывода сообщения на экран
mov dx,offset message   ;адрес начала сообщения
int 21h     ;прерывание, чтобы функция выполнилась
xor ax,ax   ;обнуление регистра ax 
mov ah,1h   ;функция ввода с клавиатуры символа с эхом 
int 21h     ;прерывание, чтобы функция выполнилась 
            ;ASCII-код введенного символа помещается в регистр al
mov dl,al   ;помещаем ASCII-код введенного символа в регистр dl
sub dl,30h  ;предполагаем, что была нажата цифра. преобразовываем ASCII-код цифры в символ 
cmp dl,9h   ;проверяем, действительно ли была нажата цифра
jle M1      ;если была нажата цифра, то прыгаем на метку M1   
sub dl,7h   ;если была нажата буква, то дополнительно преобразовываем ASCII-код буквы в символ
M1:         ;метка M1
mov cl,4h   ;один шестнадцатеричный символ занимает 4 бита (полубайт)  
shl dl,cl   ;сдвигаем символ из младшего полубайта в старший   
int 21h     ;вводим второй символ. прерывание, чтобы функция ввода выполнилась
sub al,30h  ;предполагаем, что была нажата цифра. преобразовываем ASCII-код цифры в символ 
cmp al, 9h  ;проверяем, действительно ли была нажата цифра 
jle M2      ;если была нажата цифра, то прыгаем на метку M2
sub al,7h   ;если была нажата буква, то дополнительно преобразовываем ASCII-код буквы в символ
M2:         ;метка M2
add dl,al   ;помещаем символ в младший полубайт
mov ax,4c00h;функция выхода из программы. код возврата - ноль   
int 21h     ;прерывание, чтобы функция выполнилась 
mov ax,dl   ;помещяем в ах двоичный код
mov bx,10
xor cx,cx   ;обнуление cx
cnv:        ;метка
xor dx,dx   ;обнуление dx
div bx
push dx
inc cx
or ax,ax
jnz cnv    ;перейти, если не равно  
mov ah,02h
print:
pop dx
add dl,30h
int 21h
loop print
main endp   ;конец процедуры
code ends   ;конец сегмента кода
end main    ;указывается метка (процедура), с которой должна начаться выполняться программа
скорее всего я что-то сделал криво

Вернуться к обсуждению:
Преобразовать двоичный код в десятичный
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2016, 11:26

Базовые понятия: как перевести в асме слово в двоичный код?
Как перевести в асме слово в двоичный код? По определению слово занимает 2 байта или 65536. Когда...

Преобразовать код из С++ в код Ассемблера
Прошу о помощи. В условии надо поменять местами первую четверть массива со второй, а третью с...

Преобразовать двоичный код в двоично-десятичный код (Intel 8051)
Прочитать с порта Р0 один байт двоичного кода 8-4-2-1, превратить его в двоично-десятичный код и...

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