2012-10-29 3 views
1

안녕하세요. 나는 어셈블리 레벨 프로그래밍이 처음이다. 나는 아 레지스터로 값을 가져 오기 위해 시도하는 등처럼 1을 추가 해요 프로그램의 다른 부분에서조립 레벨 Proramming에서 db로 바이트를 정의한 후 값을 증가 시키십시오.

count db 0 

:

내 탁월한 코드에서

, 나는 코드 바이트를 정의 : 이제

mov ah,count 
add ah,1 

, 내가 루프 나에 대한 카운터로 사용할 수 있도록 나는 레지스터에 새로운 증가 값으로 가 인식하는 메모리 위치를 업데이트 어떻게 다른 목적?

+1

'mov'할 수 없습니까? – Mat

+0

mov가 그렇게 작동합니까? 뜻은 mov _register_name _, _ memory_loc_ 가 작동합니까? –

+0

그냥 시도해보십시오. – Mat

답변

3

mov ah, count은 작동하지 않습니다. Nasm 문법에서는 주소가 count으로 바뀌려고하는데 ... 아예 적합하지 않습니다. 당신은 "[내용]"을 원합니다.

mov ah, [count] 
inc ah 
mov [count], ah 

당신은

inc byte [count] 
; and perhaps... 
cmp byte [count], MAXCOUNT 
jb looptop 

그것은 메모리보다 레지스터와 함께 작동하도록 빠르다 ( MAXCOUNTlooptop와는 물론, 정의) ... 또한 수 있지만, 당신도 할 수 있습니다. 매트가 제안했듯이 "시도"하는 것을 주저하지 마십시오!

+0

예! 그게 내가 찾고 있던거야! 엄청 고마워! 나도 몰랐다. 실제 컨텐트/값을 가져 오기 위해서는 바이트 주소를 []로 묶어야한다! –

관련 문제