Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос Ассемблер, GetSystemTime

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
2 Окт 2025
Сообщения
25
Реакции
2
помогите кто-то плиз
x64/windows/masm

дело в том что я использую функцию GetSystemTime для вывода часа, то есть условно, щас время 15 00, должно вывести 15 в окне MessageBoxA
1763121656776.png

число которое хранит в себе регистр ax я преобразовал, все вроде бы сделал правильно, к структуре тоже обратился верно, то есть по смещению timeBuffer+8 находится вывод часа, но все равно выводит неправильное время

и цикл тоже верный

1763121816165.png


сщву:
Expand Collapse Copy
includelib kernel32.lib
includelib user32.lib

extrn GetSystemTime: PROC
externdef MessageBoxA:PROC

.data
    timeBuffer db 16 dup(0)
    fullMsg db "hour: ",0
    titlesMsg db "my computer time",0

.code
main proc
    sub rsp, 28h

    mov rcx, offset timeBuffer
    call GetSystemTime
    mov ax, word ptr [timeBuffer+8]
    movzx rax, ax               
  
    mov rdi, offset fullMsg + 6
    mov rbx, 10
    xor rcx, rcx
  
whileCicl:
    xor rdx, rdx               
    div rbx                     
    add dl, '0'
    push rdx
    inc rcx                     
    test rax, rax               
    jnz whileCicl

    mov rsi, rdi               
pop_loop:
    pop rax
    mov [rsi], al               
    inc rsi                     
    loop pop_loop
    mov byte ptr [rsi], 0
  
    xor rcx, rcx
    lea rdx, fullMsg
    lea r8, titlesMsg
    xor r9, r9
    call MessageBoxA

    add rsp, 28h
    ret
main endp
end
 
Назад
Сверху Снизу