Be
Be

Ассемблер. помогите решить!!!

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

пожалуйста, как можно подробнее! любые ссылки на информацию приветствуются! я в ассемблере 0, но лаба на завтра!

64бит система

UU
Usmonhon Umarov

> 64бит система
Хорошо, что вы сообщили разрядность вашей системы. Но забыли сообщить какая система. Обычно наоборот, забывают указать разрядность.
Windows, Linux, MacOS или ещё какая-нибудь экзотическая?

format PE64
entry N80870761
include 'win64ax.inc'

section '.data' data readable writeable
hStdOut rd 1
String rb 11

section '.text' code readable executable
N80870761:
sub rsp,8*6
mov ecx,STD_OUTPUT_HANDLE
call [GetStdHandle]
mov [hStdOut],eax

mov eax,499602D2h; целое число, 4 байта без знака

xor rcx,rcx
mov r8d,10
RepDiv:
xor rdx,rdx
div r8d
or dl,30h
push rdx
inc rcx
or eax,eax
jnz RepDiv
lea rdi,[String]
RepStor:
pop rax
stosb
loop RepStor
xor al,al
stosb
mov rcx,String
call [lstrlenA]
mov ecx,[hStdOut]
mov rdx,String
mov r8,rax
xor r9,r9
mov [rsp+20h],r9
call [WriteConsoleA]
xor ecx,ecx
call [ExitProcess]

section '.idata' import data readable writeable

dd 0,0,0,RVA kernel_name,RVA kernel_table
dd 0,0,0,0,0

kernel_table:
ExitProcess dq RVA _ExitProcess
GetStdHandle dq RVA _GetStdHandle
lstrlenA dq RVA _lstrlenA
WriteConsoleA dq RVA _WriteConsoleA
dq 0

kernel_name db 'KERNEL32.DLL',0

_ExitProcess db 0,0,'ExitProcess',0
_GetStdHandle db 0,0,'GetStdHandle',0
_lstrlenA db 0,0,'lstrlenA',0
_WriteConsoleA db 0,0,'WriteConsoleA',0

Похожие вопросы
Люди, помогите с Ассемблером!!!
Помогите с ассемблером
Помогите, что не так? прога в ассемблере
Помогите решить задачу по ассемблеру
Пожалуйста решите задачу на Ассемблере
Помогите решить задачу на ассемблере
Помогите пожалуйста решить задачу на ассемблере в паскале
Помогите пожалуйста решить задачу в паскале на языке ассемблер
Помогите по ассемблеру
Помогите с ассемблером