X86汇编入门——字符串逆序输出

思路大概是先取出字符串压入栈中 再从栈中取出到数组 根据栈先入后出的特性 取出的字符串顺序完成调转了
.386
.model flat,stdcall
option casemap:none

include msvcrt.inc
includelib msvcrt.lib

.data
	szStr byte "Hello World",0
	szBuf db 11 dup(?)
.code
start:

	lea esi,[szStr]
	mov ecx,0
	
@a1:	
	cmp ecx,11
	jz @end1
	mov ebx,0
	mov  bl,byte ptr[esi+ecx]
	push ebx
	inc ecx
	jmp @a1
@end1:  

	lea edi,[szBuf]
@a2:	
	cmp ecx,0
	jz @end2
	pop eax
	dec ecx
	cld
	stosb
	jmp @a2
@end2:
 	invoke crt_printf,addr szBuf		
	ret
	
end start
end

猜你喜欢

转载自blog.csdn.net/yusakul/article/details/79891061