2011-04-13 4 views
0

우선, 지금까지 모든 도움에 감사드립니다.ASCII 코드 해석 (어셈블리)

전체 코드는 내가 문제가이 라인을 이해하기

here를 찾을 수 있습니다. 내가 몇 가지 의견을 썼습니다 ...

라인, 예 : moves : [si + 6], al은 si + 6으로 표시된 메모리 주소로 데이터를 이동한다는 것을 의미합니다 (이것은 오프셋 계산이 될 것이라고 생각합니다.).

그러면 si를 추가하면 루프에 40이 추가됩니까?

아무 것도 나에게 모든 것을 의미합니다! 고맙습니다.

L0_95:   ; this segment prints ASCII code 0 - 95 
mov si,6  ; refers to the string we declared at the beginning 
mov cx,4  ; I think this is the height? 

C1A: 
; this loop adds the name of the column 
mov al,string[0] 
mov es:[si],al 
mov al,string[2] 
mov es:[si+6],al 
mov al,string[4] 
mov es:[si+24],al 
mov al,string[6] 
mov es:[si+28],al 
add si,40   ;;;; what is this line? 
loop C1A 

mov si,122   ;;;; and these three lines? 
mov bx,0 
mov cx,4 
C1B:push cx 

mov cx,24 
add si,40 
C1C:push cx 
call DEC_CONVERT 
add si,2 
call HEX_CONVERT 
add si,2 
call BIN_CONVERT 
add si,2 
call CHAR_CONVERT 
inc bx 
add si,126 
pop cx 
loop C1C 
pop cx 
sub si,3840 
loop C1B 

ret 

L96_191: 
+0

반드시 Google을 검색하거나 직접 문서를 검색 할 수 있습니까? –

+0

잠깐, 3 년 전부터 다른 누군가의 16 비트 DOS 어셈블리 언어 숙제를 이해하도록 도와 주시겠습니까? 심지어 작동하는지 어떻게 알 수 있습니까? –

+0

처음에는 여기에와 주셔서 감사합니다. 음 ... 컴퓨터 언어를 배우는 부분은 다른 사람의 코드를 읽는 것입니다. 그렇지 않습니까? C++이나 java 또는 python과 달리 docs는 매우 유익한 IMO가 아닙니다. 그리고 아마 내가이 시점에서 초보자이기 때문일 것입니다. – CppLearner

답변

2

add si 40.
mov si,122 세트 (122)는 SI 레지스터 일부 데이터 아마도 어드레스에 의해 실리콘 레지스터를 진행한다. 나머지 두 명령어는 이제 설명이 필요합니다.

+0

urgh. 권리. 나는 정수를 해석하는 방법을 잊어 버린다. 너 정말 도와 줘서 고마워. – CppLearner