Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/47: Рейтинг темы: голосов - 47, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 20.06.2011
Сообщений: 18

Вывод шестнадцатеричного числа

14.01.2012, 15:25. Показов 8936. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно вывести шестнадцатеричное число. Где то закралась ошибка, заданное число выводит в виде 1133, ткните пожалуйста где ошибся. Транслятор NASM
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
  org 100h
;===========================
 
test_write_word_hex:
  mov dx,1234h
  call write_word_hex
  int 20h
;===========================
 
write_word_hex:
 push dx
 xchg dh,dl
 call write_byte_hex
 xchg dh,dl
 call write_byte_hex
 pop dx
 ret
;=============================
 
write_byte_hex:
 push dx
 mov cl,04
 shr dl,cl
 call write_digit_hex
 and dl,0fh
 call write_digit_hex
 pop dx
 ret
;=============================
 
write_digit_hex:
 push dx
 cmp dl,09
 ja .g
 add dl,30
 jmp .h
.g add dl,37
.h call write_char
 pop dx
 ret
;=============================
 
write_char:
 push ax
 mov ah,02h
 int 21h
 pop ax
 ret
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.01.2012, 15:25
Ответы с готовыми решениями:

[NASM+DOS+COM] Вывод двухзначного шестнадцатеричного числа
Народ выручайте, в коде вроде все правильно и по идее должен вывести 3f а выводит 33, может кто знает в чем проблема?org 100h ; ...

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

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

6
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
14.01.2012, 15:39
Цитата Сообщение от evgeshqa Посмотреть сообщение
mov dx,1234h
это круто
как в 16битную ячейку записать 32разрядную переменную

Добавлено через 1 минуту
Цитата Сообщение от evgeshqa Посмотреть сообщение
push dx
mov cl,04
shr dl,cl
а здесь кто маску будет ставить

Добавлено через 1 минуту
Цитата Сообщение от evgeshqa Посмотреть сообщение
add dl,30
значение 16 должно быть

Добавлено через 3 минуты
Цитата Сообщение от evgeshqa Посмотреть сообщение
add dl,37
а это что за волшебное число?
A =41h
a 61h
(или наоборот не помню точно)
1
0 / 0 / 0
Регистрация: 20.06.2011
Сообщений: 18
14.01.2012, 15:45  [ТС]
Брр..извините, можно тогда немного теории к этому?
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
mov bx,1234
mov dl,bh
mov cl,04
shr  dl,cl
cmp dl,09
ja 
add dl,30
jmp 
add dl,37
mov ah,02
int 21
mov dl,bh
and dl,0f
cmp dl,09
ja
add dl,30
jmp 
add dl,37
int 21
mov dl,bl
mov cl,04
shr dl,cl
cmp dl,09
ja 
add dl,30
jmp
add dl,37
int 21
mov dl,bl
and dl,0f
cmp dl,09
ja
add dl,30
jmp 
add dl,37
int 21
int 20
Вот тоже самое, написанное в простом дебаге виндовс. Все выводит, как надо. Где и что я напутал?
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
14.01.2012, 16:20
Цитата Сообщение от evgeshqa Посмотреть сообщение
mov dx,1234h
и

Цитата Сообщение от evgeshqa Посмотреть сообщение
mov bx,1234
не видишь разницу???
десятичное 1234 =4D2h
хотя с этим
Цитата Сообщение от ValeryS Посмотреть сообщение
mov dx,1234h
это круто
как в 16битную ячейку записать 32разрядную переменную
прошу пардона маху дал
это и есть 16 число
признаю

Добавлено через 2 минуты
Цитата Сообщение от evgeshqa Посмотреть сообщение
Брр..извините, можно тогда немного теории к этому?
а откуда ты это взял ????
здесь даже
Цитата Сообщение от evgeshqa Посмотреть сообщение
and dl,0f
написано как десятичное а не шестнадцатиричное

Добавлено через 6 минут
Цитата Сообщение от evgeshqa Посмотреть сообщение
jmp
???
Цитата Сообщение от evgeshqa Посмотреть сообщение
ja
????
куда перходим??
если бы ты написал
Assembler
1
2
3
4
5
6
cmp dl,09
 ja .g
 add dl,30h; код'0'
 jmp .h
.g add dl,37h; 0Ah+37h= 41 код A'
.h call write_char
то половина вопросов бы отпало
но по моему ты не разбираешься в десятичной и шестнадцетеричной записи

Добавлено через 6 минут
Цитата Сообщение от evgeshqa Посмотреть сообщение
shr dl,cl
call write_digit_hex
and dl,0fh
и вот она главная ошибка дубляж цифр
не видишь
dl =12

shr dl,cl
dl=1
and dl,0fh
dl=1
12 ты потерял при сдвиге
надо или в стек загнать или в другом регистре запомнить
1
0 / 0 / 0
Регистрация: 20.06.2011
Сообщений: 18
14.01.2012, 16:21  [ТС]
Вариант из дебага написан мной, по университетской методичке) Он был предназначен для вывода шестнадцатеричных цифр. Но он правильный, а сейчас надо переделать, используя транслятор и в виде процедур.
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
14.01.2012, 16:29
Цитата Сообщение от evgeshqa Посмотреть сообщение
Вариант из дебага написан мной, по университетской методичке
в дебагах числа шеснадцатеричные а в ассемблере надо подставлять к числу систему счисления
Цитата Сообщение от evgeshqa Посмотреть сообщение
Но он правильный,
особенно это
Цитата Сообщение от evgeshqa Посмотреть сообщение
ja
Цитата Сообщение от evgeshqa Посмотреть сообщение
jmp
адрес перехода где???
и я тебе уже указал на ошибку дублежа цифр
1
0 / 0 / 0
Регистрация: 20.06.2011
Сообщений: 18
14.01.2012, 16:48  [ТС]
Извините, что запутал с адресами, не указал.

А про ошибку, дубляж цифр, спасибо! Действительно, добавил регистр, все заработало.)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.01.2012, 16:48
Помогаю со студенческими работами здесь

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

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

Ввести два числа Осуществить вывод меньшего числа, вывод большего числа
Помогите решить эти задачи Можно на чём угодно. Можно даже на Assembler вставках в C++ сделать Вот сами задачи: 17....

Запись шестнадцатеричного числа
Здравствуйте. нужна помощь. понадобилось шестнадцатеричное представление числа, погуглил не нашел, а точнее нашел тоже самое что я написал:...

Сложение десятичного и шестнадцатеричного числа
Привет. Есть проблемка. Не правильно складываются 2 числа в разных СС. А именно число K и &V1. Например на скрине он вместо 4 прибавил...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru