Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
VitaliyT48
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 4
#1

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

08.06.2015, 18:01. Просмотров 497. Ответов 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] Вывод десятичного числа
Еще один вопросик, в похожей программе, не получается вывести заданное число,...

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

Найти произведение цифр двухзначного числа
nujnapomsh' s zadachami na assembler. esli mojno s detal'nimi poyasneniyami. ya...

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

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

3
Ethereal
Заблокирован
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
11730 / 6042 / 543
Регистрация: 11.11.2010
Сообщений: 11,025
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

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

Определить,является ли введенная строка правильной записью целочисленного шестнадцатеричного числа без знака
Определить, является ли введенная строка правильной записью целочисленного...

Определите, является ли введенная строка правильной записью целого шестнадцатеричного числа без знака
Определите, является ли введенная строка правильной записью целого...


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

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

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