Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод числа в двоичной форме на экран, DOS + TASM 
:(
    Опции темы
Гость_kagor
  Дата 14.4.2004, 14:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Привет всем. Народ как мне вывести число на экран в двоичной форме, т.е. у меня в регистре число мне его надо вывести в 10-ой форме и в 2-ой.
С 10-й я разобрался так:
Код
IDEAL
MODEL small
STACK 256
DATASEG
.
.
.
MessNL DB 0Dh,0Ah,'$'
exCode  DB 0h
OutP    DW 3 DUP (?),'$'
CODESEG
begin:  
mov ax,@data
mov ds,ax
.
.
.
mov cx,ax;В ax'се нужное мне число
mov al,ch
call ConvByte
mov [OutP+2],ax
mov al,cl
call ConvByte
mov [OutP+4],ax
mov dx,offset OutP
mov ah,09h
int 21h
mov dx,offset MessNL
mov ah,09h
int 21h
.
.
.
jmp Exit
proc ConvByte
mov bh,al
 mov bl,al
and bl,0Fh
and bh,0F0h
shr bh,4h
cmp bl,9h
jle al_dig
add bl,37h
jmp conv_ah
al_dig:
add bl,30h              
conv_ah:
cmp bh,9h
jle ah_dig
add bh,37h
jmp OutAX
ah_dig:
add bh,30h
OutAX:
mov al,bh
mov ah,bl
ret
endp ConvByte
Exit:
mov ah,04Ch
mov al,[exCode]
int 21h

END begin

А разобраться с двоичной формой чегото не могу?
DOS + TASM
  Вверх
Kagor
Дата 14.4.2004, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Debian user
****


Профиль
Группа: Экс. модератор
Сообщений: 2946
Регистрация: 28.2.2003
Где: Королевство Кривых

Репутация: нет
Всего: 85



^^^Это был Я!!!


--------------------
Disassemble Your life and get the key!
PM ICQ GTalk Jabber   Вверх
Akina
Дата 14.4.2004, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Код
; This 3 procedures types the content of AX (SAY_16), AL (SAY_8)
; or lower 4-bit part of AL (SAY_B) on screen in HEX digits.



SAY_16         PROC    NEAR
               PUSH    AX
               PUSH    CX
               PUSH    DX
               XOR     DX,DX
               XCHG    AH,DL
               PUSH    AX
               MOV     AX,DX
               CALL    SAY_8
               POP     AX
               CALL    SAY_8
               POP     DX
               POP     CX
               POP     AX
               RETN
SAY_16         ENDP

SAY_8          PROC    NEAR
               PUSH    AX
               PUSH    CX
               PUSH    DX
               XOR     AH,AH
               MOV     CL,4
               SHL     AX,CL
               SHR     AL,CL
               XOR     DX,DX
               XCHG    AH,DL
               PUSH    AX
               CALL    SAY_B
               POP DX
               CALL    SAY_B
               POP     DX
               POP     CX
               POP     AX
               RETN
SAY_8          ENDP

SAY_B          PROC    NEAR
               MOV     AH,2
               ADD     DL,30H
               CMP     DL,3AH
               JB      SAY_B_
               ADD     DL,7
SAY_B_:        INT     21H
               RETN
SAY_B          ENDP



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Kagor
Дата 14.4.2004, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Debian user
****


Профиль
Группа: Экс. модератор
Сообщений: 2946
Регистрация: 28.2.2003
Где: Королевство Кривых

Репутация: нет
Всего: 85



Цитата
Привет всем. Народ как мне вывести число на экран в двоичной форме, т.е. у меня в регистре число мне его надо вывести в 10-ой форме и в 2-ой.
С 10-й я разобрался так:
Блин ошибся не в 10-ной системе счисления, а в 16-ти ричной, с которой я уже разобрался, осталась только двоичная система счисления.


--------------------
Disassemble Your life and get the key!
PM ICQ GTalk Jabber   Вверх
Jin X
Дата 14.4.2004, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 5.3.2004

Репутация: 1
Всего: 1



В двоичной так же, как и в 16-ричной, только сдвиг делаем не на 4 бита, а на 2 smile.gif
см. FAQ
--------------------
Бойся своей мечты, ибо она осуществима!
PM MAIL   Вверх
Kagor
  Дата 14.4.2004, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Debian user
****


Профиль
Группа: Экс. модератор
Сообщений: 2946
Регистрация: 28.2.2003
Где: Королевство Кривых

Репутация: нет
Всего: 85



Jin X
Спасибо за линк, нашел все что мне нужно smile.gif baaa.gif

Это сообщение отредактировал(а) Kagor - 14.4.2004, 23:14


--------------------
Disassemble Your life and get the key!
PM ICQ GTalk Jabber   Вверх
Serzh
Дата 15.4.2004, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 30.9.2003
Где: SPb

Репутация: нет
Всего: нет



Цитата(Jin @ 14.4.2004, 20:24)
В двоичной так же, как и в 16-ричной, только сдвиг делаем не на 4 бита, а на 2 smile.gif
см. FAQ

на 1 вроде...
PM MAIL WWW ICQ   Вверх
Kagor
  Дата 15.4.2004, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Debian user
****


Профиль
Группа: Экс. модератор
Сообщений: 2946
Регистрация: 28.2.2003
Где: Королевство Кривых

Репутация: нет
Всего: 85



Serzh
Ты прав на 1 smile.gif baaa.gif

Это сообщение отредактировал(а) Kagor - 15.4.2004, 16:55


--------------------
Disassemble Your life and get the key!
PM ICQ GTalk Jabber   Вверх
Jin X
Дата 15.4.2004, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 5.3.2004

Репутация: 1
Всего: 1



Да, пардон, очепятка smile.gif
--------------------
Бойся своей мечты, ибо она осуществима!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0563 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.