2013-07-09 2 views
1

어셈블리 언어를 배우려고하고 있으며 지금까지 간단한 단계를 거쳤습니다. ascii-id를 사용하여 화면에 문자를 표시 할 수 있지만 이제 특정 문자의 ID를 변수에 저장하고 인쇄하려고합니다. 불행히도 이것은 작동하지 않습니다 :) 내 코드는 화면에 공간 만 표시합니다. 각 종류의 도움에 감사드립니다!조립 - 문자 인쇄

[BITS 16] 
[ORG 0x7C00] 

; MOV AL, 48 (works) 

MOV AL, [false] 
CALL PrintCharacter 

JMP $ 

PrintCharacter: 
MOV AH, 0x0E 
MOV BH, 0x00 
MOV BL, 0x07 

INT 0x10 
RET 

false db 48 
true db 49 

TIMES 510 - ($ - $$) db 0 
DW 0xAA55 
+0

프로세서에 대한 어셈블리? – levengli

+0

잘 모르겠습니다. 가상 머신을 사용하고 있지만 VMWare가 실행중인 컴퓨터에는 AMD 프로세서가 있습니다. – raptor

+0

나는 더 구체적으로하려고 노력할 것이다. 어셈블리 언어를 배우려고한다고 할 때, 어떤 프로세서의 어셈블리를 배우려는 것입니까? – levengli

답변

1

당신은 false의 주소를 가리 키도록 한 쌍 ds:false 필요, 그래서 당신은 설정을합니다 (ds 레지스터를 통해) 데이터 세그먼트가 필요합니다. 그것을 할 필요가있는가 있기 때문에 [ORG 0x7c00] 지시어, 라벨 false의 값은 이미, 그래서 당신은 그냥 코드의 시작 부분에 그것을 넣어 0

xor ax,ax 
mov ds,ax 

ds을 설정할 수 있습니다.

+0

감사 드류, 작동합니다! – raptor