Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern "C" //ЭТО ИЗ MAIN.CPP ОБЪЯВЛЕНИЕ ФУНКЦИЙ
- {
- void in_str(unsigned short int num, char* ans);
- void in_num(char* str, int len, unsigned short int* ans);
- }
- ; А ВОТ ЭТО НАЧАЛО ASM КОДА
- .586
- .model flat, C
- .code
- ; 1. 2. 4. 1. В
- ; 16 бит без учета знака шестнадцатиричная near через кадр стека
- ; in_str(unsigned short int num, char* ans);
- ; +8 +12
- in_str proc
- push ebp
- mov ebp, esp
- mov eax, [ebp + 8] ; число тут
- xor ecx, ecx ; в ecx будет хранится кол-во знаков нового числа
- mov ebx, 16 ; в bx основания системы счисления
- delim:
- xor edx, edx
- div ebx ; в edx кладется остаток от деления eax, в eax остается целая часть от деления
- push edx
- inc ecx
- test eax, eax
- jnz delim
- xor esi, esi ; индекс элемента
- mov ebx, [ebp + 12] ; смещение на строку
- write:
- pop eax
- and eax, 15 ; нулим все кроме числа
- cmp eax, 9 ; если нужно использовать
- jg char
- add eax, 48
- mov [ebx + esi], eax
- inc esi
- jmp end_loop
- char:
- add eax, 55
- mov [ebx + esi], eax
- inc esi
- jmp end_loop
- end_loop:
- loop write
- pop ebp
- ret
- in_str endp
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement