2014-10-28 5 views
1

배열을 1-100 값으로 채우는 프로 시저를 사용하는 어셈블리 프로그램을 작성하려고합니다. 다음과 같이 내가 지금까지 가지고있는 코드는 다음과 같습니다 1. 반대로1-100 배열을 A86 어셈블리로 채우기

jmp main 

first100 dw 100 dup (?) 

main: 
call prepare 
call populate 
mov ax, first100[0] 
call putDec 

mov ah, 04c 
int 021 
include ioProcs.inc 

prepare: 
mov ax, 1 
mov bx, 0 
mov cx, 100 
ret 

populate: 
mov first100[bx], ax 
inc ax 
inc bx 
loop populate 
ret 

그러나, 배열 first100의 첫 번째 값이 아마 간단한 뭔가 (513)으로 변합니다,하지만 어디 엉망입니까? 시간 내 주셔서 감사합니다.

+2

주소 지정이 바이트 오프셋을 사용하고 항목이 각각 2 바이트이기 때문에'bx'를 2 씩 증가시켜야합니다. – Jester

+0

@Deleteme이 방법으로 질문을 수정하지 마십시오. 적절한 절차는 http://meta.stackexchange.com/questions/5999/how-can-i-delete-my-account를 참조하십시오. –

+0

@ JasonC가 시도했습니다. 아무도 요청을 처리하지 않습니다. –

답변

0

@Jester 언급 한대로 채우기 루프에서 bx을 2 바이트 씩 늘려야합니다.

단어가 dw 인 배열을 만듭니다. 즉 단어입니다. 크기는 2 바이트입니다.