Сейчас на форуме: bartolomeo, vasilevradislav, rmn, Magister Yoda (+6 невидимых)

 eXeL@B —› Программирование —› Assembler вывод числа на экран
Посл.ответ Сообщение

Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 декабря 2008 16:16
· Личное сообщение · #1

Необходимо вывести 16-ричное число, напр. 12Е8h, в двоичном виде (1001011101000) на экран - хз как это сделать, обычная картина - абракадабра из ASCII-символов в количестве, явно превышающем 16 символов. Был совет обращаться побитово к числу - тогда нужен всего 1 цикл (по утверждению препода), но как это сделать - опять хз. Есть идеи?

c0b0_22.12.2008_CRACKLAB.rU.tgz - 12.ASM



Ранг: 284.8 (наставник), 6thx
Активность: 0.150
Статус: Участник

Создано: 22 декабря 2008 16:37
· Личное сообщение · #2

ппц. мальчик. ты гуглить сначала пробовал?



Ранг: 0.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 декабря 2008 18:04
· Личное сообщение · #3

; mov eax, any_value
; mov edi, offset string
; call _dword2bin


_dword2bin proc near
push eax
push edi
push ebx

mov bh, 32
_convert:
shl eax, 1
mov bl, 30h
adc bl, 0

mov byte ptr[edi], bl

inc edi
dec bh
jnz _convert

mov byte ptr [edi], 0

pop ebx
pop edi
pop eax
ret

_dword2bin endp



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 22 декабря 2008 20:03
· Личное сообщение · #4

Nickel-j, для таких вопросов на wasm'e есть спец топик:
wasm.ru/forum/viewtopic.php?id=17088
Да и ответов, как заметил RSI, навалом.

-----
Всем привет, я вернулся




Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 23 декабря 2008 17:48
· Личное сообщение · #5

melw0n - спасибо за помощь, только у меня вариант несколько иной:
Code:
  1.   mov cx,16 
  2.        mov othval,1000000000000000b           ;mov bx,binval
  3. ENTR:  mov bx,binval
  4.        and bx,othval
  5.        test bx,othval
  6.        jnz edic
  7.        mov ah,2
  8.        mov dx, '0'
  9.        int 21h
  10.        jmp rturn
  11. edic:  mov ah,2
  12.        mov dx, '1'
  13.        int 21h
  14. rturn: shr othval,1
  15.        loop entr

RSI - веришь, гуглил - не помогло, но спасибо за ценное указание
Bitfry - в следущий раз буду знать и вопрос, в общем, исчерпан


 eXeL@B —› Программирование —› Assembler вывод числа на экран
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати