Форум программистов, компьютерный форум, киберфорум
Наши страницы

Assembler для начинающих

Войти
Регистрация
Восстановить пароль
 
VitaliyT48
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 4
#1

[NASM+DOS+COM] Вывод двухзначного шестнадцатеричного числа - Assembler

08.06.2015, 18:01. Просмотров 487. Ответов 3
Метки нет (Все метки)

Народ выручайте, в коде вроде все правильно и по идее должен вывести 3f а выводит 33, может кто знает в чем проблема?
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
org 100h
;
;Тестирование процедуры Write_byte_hex
;--------------------------------------
;Вызовы: Write_byte_hex
;
Test_write_byte_hex:
mov dl,3fh                    ;Тестировать с 3fh
call Write_byte_hex           ;Вывод числа
int 20h                       ;Возврат в DOS
;
;Вывод двузначного шестнадцатеричного числа
;-------------------------------------------
;Входы: DL содержит выводимое число
;Вызовы: Write_digit_hex
;
Write_byte_hex:
mov cl,04h
shr dl,cl
call Write_digit_hex
and dl,0fh
call Write_digit_hex
ret
;
;Вывод шестнадцатеричной цифры
;--------------------------------
;Входы: BL содержит шестнадцатеричную цифру
;Вызовы: Write_char
Write_digit_hex:
cmp dl,09h
ja 10ch
add dl,30h
jmp 10fh
add dl,37h
call Write_char
ret
;
;Вывод символа на экран
;-------------------------
;Входы: DL содержит код символа, выводимый на экран
;
Write_char:
push ax
mov ah,2             ;Функция вывода символа
int 21h              ;Вывод символа на экран
pop ax
ret
Добавлено через 36 минут
Все народ, в принципе исправил, но все же не уверен что все правильно, получилось вот так. Если есть другой способ логичный подскажите.
Assembler
1
2
3
4
5
6
7
8
9
10
Write_byte_hex:
push dx
mov cl,04h
shr dl,cl
call Write_digit_hex
mov dl,3fh   
and dl,0fh
call Write_digit_hex
pop dx
ret
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2015, 18:01
Я подобрал для вас темы с готовыми решениями и ответами на вопрос [NASM+DOS+COM] Вывод двухзначного шестнадцатеричного числа (Assembler):

Вывод шестнадцатеричного числа - Assembler
Нужно вывести шестнадцатеричное число. Где то закралась ошибка, заданное число выводит в виде 1133, ткните пожалуйста где ошибся....

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

Программа преобразования двузначного шестнадцатеричного числа в символьном виде в двоичное представление - Assembler
Имеется программа, которая преобразовывает двузначное шестнадцатеричное число в символьном виде в двоичное представление. Она записывает...

Определить парность цифр двухзначного числа - Assembler
Помогите, не знаю что уже делать, дебагер выдаёт деление на ноль, перепробовал всё что знал (Где комменты - было дано учителем) sseg...

Найти произведение цифр двухзначного числа - Assembler
nujnapomsh' s zadachami na assembler. esli mojno s detal'nimi poyasneniyami. ya novichok v etoy oblasti. vot zadachi: 1) dano...

Умножение длинного целого числа в памяти на регистр (nasm) - Assembler
умножение длинного целого числа (в памяти) на регистр. Получить произведение*(в памяти) может кто-нибудь помочь? среда nasm

3
Ethereal
Нарушитель
4512 / 1371 / 182
Регистрация: 17.02.2013
Сообщений: 2,280
08.06.2015, 20:17 #2
Assembler
1
2
3
4
5
6
7
8
9
Write_byte_hex:
push dx
mov cl,4
shr dl,cl
call Write_digit_hex
pop dx
and dl,0fh
call Write_digit_hex
ret
2
VitaliyT48
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 4
09.06.2015, 00:38  [ТС] #3
Цитата Сообщение от Ethereal Посмотреть сообщение
Assembler
1
2
3
4
5
6
7
8
9
Write_byte_hex:
push dx
mov cl,4
shr dl,cl
call Write_digit_hex
pop dx
and dl,0fh
call Write_digit_hex
ret
Спасибо, буду знать)
0
Mikl___
Автор FAQ
11329 / 5872 / 524
Регистрация: 11.11.2010
Сообщений: 10,913
09.06.2015, 03:57 #4
Цитата Сообщение от VitaliyT48 Посмотреть сообщение
Если есть другой способ логичный подскажите.
http://www.cyberforum.ru/assembler-articles/thread744885.html
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2015, 03:57
Привет! Вот еще темы с ответами:

Найти сумму всех чисел натурального ряда чисел от 1 до двухзначного беззнакового целого числа - Assembler
Найти сумму всех чисел натурального ряда чисел от 1 до двухзначного беззнакового целого числа(Вводится с клавиатуры) Помогите пожалуйста....

Вывод в dos содержания переменной - Assembler
Одна очень крутая девушка помогла написать программку со стеками, а я вот никак к ней вывод прилепить не могу. Подскажите каким образом...

Вывод символов на экран в MASM под DOS - Assembler
Недавно начал изучать ассамблер по Калашникову. У него приведен пример такой программы CSEG segment org 100h Start: MOV ax,...

TASM. Вывод строки в DOS по нажатию на горячую клавишу - Assembler
Есть код вывода строки. Как вывести его по нажатию на клавишу, например "Г". main proc near lea dx,message mov ah,9h ;функция...


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

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

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