ASM AT&T lustrzane odbicie

0

witam. mam problemi nie mam pojęcia jak go rozwiązać. muszę napisać program który po wczytaniu ciągu znaków z klawiatury wyświetli mi jego lustrzane odbicie. mam część z wprowadzeniem i wyświetleniem tekstu ale nie mam pojęcia jak to wszystko odwrócić. mam nadzieję że ktoś mi pomoże

0

Chodzi Ci o wypisanie tekstu od końca do początku, czy ¿ǝıɔıqpo ǝuɐzɹʇsnן ǝıʞɐʇ

Bo jeśli do drugie to będzie ciężko, a do tego pierwszego wystarczy

  1. wczytać cały tekst
  2. wypisać od końca
  3. hmm... tyle.
0

Masz, załap algorytm i przepisz na AT&T:

.586
.model flat, stdcall
option casemap:none

include windows.inc
include kernel32.inc

includeLib kernel32.lib

.data
hOutPut  dd 0
hInPut   dd 0
dwReadWritten dd 0
szInput  db 128 dup(0)

.code

start:
	xor eax, eax
	
	push STD_OUTPUT_HANDLE
	call GetStdHandle
	mov hOutPut, eax
    
	push STD_INPUT_HANDLE
	call GetStdHandle
	mov hInPut, eax
	
	push 0
	push offset dwReadWritten
	push 128
	push offset szInput
	push hInPut
	call ReadFile
	
	mov esi, 0
	mov edi, 0
	mov esi, OFFSET szInput
	mov edi, OFFSET szInput + SIZEOF szInput - 1
	mov ecx, SIZEOF szInput/2

_loop:
	mov al, [esi]
	mov bl, [edi]
	mov [edi], al
	mov [esi], bl
	inc esi
	dec edi
	dec ecx
test ecx, ecx
jnz _loop
	
	push 0
	push offset dwReadWritten
	push 128
	push esi
	push hOutPut
	call WriteFile
    
	push 0
	push offset dwReadWritten
	push 128
	push offset szInput
	push hInPut
	call ReadFile
    
	ret

end start

1 użytkowników online, w tym zalogowanych: 0, gości: 1