0
INCLUDE Irvine32.inc
.data
fullName BYTE "Bob Johnson",0
nameSize = ($ - fullName) - 2
.code
main PROC
mov ECX,nameSize
mov ESI,OFFSET fullName
Sum:
mov EBX,[ESI+ECX]
add EAX,EBX
loop Sum
exit
main ENDP
END main
그래서 한 번에 한 문자열에서 한 문자를 읽고 EBX 레지스터에 저장하고 해당 문자의 값을 가져 와서 누적 합계를 유지하려고합니다. EAX에서.MASM 문자열에서 Ascii의 합계
8 비트 부호없는 산술을 사용하여 문자열 문자의 모든 ASCII 코드를 함께 추가하십시오. 오버플로는 무시됩니다. 최종 값은 체크섬입니다. 예를 들어, 문자열이 "Joe"이면 ASCII 값은 4A, 6F, 65입니다. 합계는 11E입니다.