<PRE>TITLE Program Template (RevStr.asm)
INCLUDE Irvine32.inc
.data
aName BYTE "MICRO",0
nameSize = ($ - aName) - 1
.codemain PROC
mov ecx,nameSize
mov esi,0
L1: movzx eax,aName[esi]
push eax
inc esi
call DumpRegs
Loop L1
mov ecx,nameSize
mov esi,0
L2: pop eax
mov aName[esi],al
inc esi
call DumpRegs
Loop L2
; Display the name.
mov edx,OFFSET aName
call Writestring
call Crlf
exit
main ENDP
END main
형님들 도와 주세요..
이제 막 입문 한 게이라.. 너무 힘들어요..ㅜㅜ
코드 옆에 해석 좀 도와 주세요..
</PRE>
INCLUDE Irvine32.inc
.data
aName BYTE "MICRO",0
nameSize = ($ - aName) - 1
.codemain PROC
mov ecx,nameSize
mov esi,0
L1: movzx eax,aName[esi]
push eax
inc esi
call DumpRegs
Loop L1
mov ecx,nameSize
mov esi,0
L2: pop eax
mov aName[esi],al
inc esi
call DumpRegs
Loop L2
; Display the name.
mov edx,OFFSET aName
call Writestring
call Crlf
exit
main ENDP
END main
형님들 도와 주세요..
이제 막 입문 한 게이라.. 너무 힘들어요..ㅜㅜ
코드 옆에 해석 좀 도와 주세요..
</PRE>
aName BYTE \"MICRO\",0 은 .data영역부터 1바이트씩 해당 아스키코드랑 널문자 쑤셔박는거고
nameSize=($-aName)-1에서 $는 현재 라인의 메모리 주소라고 보면 돼. 그러니까 현재 주소에서 aName의 시작주소를 빼면 아까 마이크로,0 한 6바이트가 나오겠지
거기서 널문자 제외하려고 -1한거같고
아 씨발 귀찮아 안해 ㅗ
다음은 니가 알아서해