
Написах тази програма за един приятел на който му трябваше програма да обраща низ отзад напред но без да използва никакви допълнителни функций.
.386
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
.data?
string db 20 dup(?)
Reversed db 20 dup(?)
count db ?
.code
start:
invoke StdIn,addr string,20
xor dl,dl
lea ecx,string
loop1:
mov bl,byte ptr[ecx]
cmp bl,0h
jz play
inc dl
inc ecx
jmp loop1
play:
sub ecx,3
sub dl,2
lea eax,Reversed
newloop:
mov bl,byte ptr[ecx]
mov byte ptr [eax],bl
dec ecx
dec dl
inc eax
cmp dl,0
je play1
jmp newloop
play1:
invoke StdOut,addr string
invoke StdOut,addr Reversed
invoke StdIn,addr string,1
invoke ExitProcess, 0
end start
Няма коментари:
Публикуване на коментар