Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Перевод чисел из десятичной системы в двоичную

71K
07 июня 2012 года
RooceeD
3 / / 03.06.2012
Код работает, но если я ввожу например число 8, он мне выдает 00010000, а не 00001000.

Если я вместо shr использую shl, вообще только нули выдает

Помогите пожалуйста =)

Код:
call    read_int       
        mov [input], eax       
        mov ebx, eax
        cmp eax, 0         
        jl  Error

        mov eax, 0          ;
        mov ecx, 8          ;
Start:  shr ebx, 1              ; Вот
        adc eax, 0          ; эта
        call    print_int       ; часть
        mov eax, 0          ;
        loop    Start           ;

        call    print_nl
        call    print_nl   

            jmp exit   

Error:  call    print_nl         
        mov eax, error_msg     
        call    print_string       
        call    print_nl
        call    print_nl
        jmp exit
414
07 июня 2012 года
CassandraDied
763 / / 24.05.2012
У меня всё выводит верно.
277
08 июня 2012 года
arrjj
1.7K / / 26.01.2011
shl же а не shr
Код:
section .bss
pislo resd 1

section .data

msgpattern  db      "%d",0
msginput    db  "Введите число (dec):",0
msgoutput   db  "Число (bin):",0

section .text
  extern putchar
  extern scanf
  extern printf

global main
main:
    push    msginput
    call    printf
    add esp, 4

    push    pislo
    push    msgpattern
    call    scanf
    add esp,8

    push    msgoutput
    call    printf
    add esp, 4
   
    mov ecx,32
    mov ebx,[pislo]
print:
    xor eax,eax
    shl ebx, 1
    adc eax, 0x30
    push    ecx
    push    ebx
    push    eax
    call    putchar
    add esp,4
    pop ebx
    pop ecx
loop print

    push    0xA
    call    putchar
    add esp, 4
ret 0
71K
07 июня 2012 года
RooceeD
3 / / 03.06.2012
Цитата: CassandraDied
У меня всё выводит верно.



Не пойму тогда. Я делал это через VirtualBox, в Убунту. Может быть из-за этого проблема..

Все равно спасибо большое!

414
07 июня 2012 года
CassandraDied
763 / / 24.05.2012
Цитата: RooceeD
[quote=CassandraDied;82724]У меня всё выводит верно.



Не пойму тогда. Я делал это через VirtualBox, в Убунту. Может быть из-за этого проблема..

Все равно спасибо большое![/quote]
Может быть, стоит посмотреть в отладчике?

414
07 июня 2012 года
CassandraDied
763 / / 24.05.2012
Попробуй shr заменить на rcr. Не уверен, что shr устанавливает бит в cf, хотя у меня устанавливал.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог