0 / 0 / 0
Регистрация: 23.05.2022
Сообщений: 2
1

Перевод из десятичной системы в двоичную знакового числа (asm вставка)

23.05.2022, 19:12. Показов 433. Ответов 1

Здравствуйте. Помогите, пожалуйста, с заданием. Не сталкивалась раньше с Ассемблером и никак не могу разобраться. В целом речь идет об ассемблерной вставке в код на С++.

Задание звучит так:

На языке Ассемблер написать функцию формирования строки символов соответствует бинарному представлению 32-х разрядного числа. Используя эту функцию, вывести на экран состояние регистров общего назначения до и после операций арифметического вычитания и деления Обратить внимание на представление чисел в прямом и дополнительном кодах.

С проведением арифметических операций кое-как разобралась, а вот функция формирования строки не выходит. В идеале в параметры функции должно передаваться число, а на выходе иметь это же число в двоичной системе (с учетом того, что число может быть отрицательным).

Пока что есть вот это. Работает с целым беззнаковым числом. Подскажите, пожалуйста, что нужно дописать/переписать, чтобы оно учитывало знак и формировало дополнительный код?
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
long long dec2bin(int num)
{
    int bin = 0, k = 1;
 
    __asm {
        mov ebx, 2 
        mov eax, bin
        mov edx, 0 
        mov ecx, k 
        WhileLoop : 
        push eax
            mov eax, num
            div ebx
            mov num, eax
            mov eax, edx
            mul ecx
            mov ebx, eax 
            pop eax
            add eax, ebx
            push eax 
            mov eax, ecx 
            mov ebx, 10 
            mul ebx
            mov ecx, eax
            mov ebx, 2 
            pop eax 
            cmp num, 0 
            jnz WhileLoop
 
    }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2022, 19:12
Ответы с готовыми решениями:

Перевод числа из десятичной системы в двоичную
Нужно создать программу, которая переводит числа из десятичной системы в двоичную. Написал код, он...

Перевод числа из десятичной системы в двоичную
нужно написать программу перевода числа из десятичной системы в двоичную используя только цикл for...

Перевод числа из десятичной системы в двоичную
программа перевода числа из десятичной системы в двоичную в FASM. СКОЛЬКО НЕ ПЫТАЛИСЬ, НЕ МОЖЕМ...

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

Перевод числа из десятичной системы в двоичную
вот что у меня получилось: #pragma hdrstop #include <iostream.h> #include <tchar.h> #pragma...

1
552 / 530 / 85
Регистрация: 29.05.2015
Сообщений: 3,446
23.05.2022, 22:45 2
Лучший ответ Сообщение было отмечено SCToy как решение

Решение

-15(10) = -1111(2)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.05.2022, 22:45
Помогаю со студенческими работами здесь

Перевод числа из десятичной системы в двоичную
нужно написать программу перевода числа из десятичной системы в двоичную используя только цикл for...

Перевод числа из десятичной системы в двоичную
программа перевода числа из десятичной системы в двоичную ассемблер. 64 бита Добавлено через...

Перевод числа из десятичной системы в двоичную
Помогите перевести 599,85 в двоичную систему с помощью c#

Рекурсия: перевод числа из десятичной системы в двоичную
Нужна программа,которая рекурсивно переводит числа из десятичной системы в двоичную.

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

Перевод числа из десятичной системы счисления в двоичную.
Что неправильно??? + вопрос. дальше по заданию мне надо 2 числе перевести в двоичную систему, а...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru