2012-04-04 4 views
-1

그래서 난 시스템 스피커 경고음을해야하고 나는이어셈블러에서 루프를 만드는 방법은 무엇입니까? ,

program lab1; 
begin 
asm 
MOV AL, 10110110b 
OUT 43h, AL 
MOV AX, 1000 ||<------ 1000 is N  
OUT 42h, AL 
MOV AL, AH 
OUT 42h, AL 
IN AL, 61h 
OR AL, 00000011b 
OUT 61h, AL 
MOV CX, 1000 
@N1:MOV DX, 0 
@N:NOP  
NOP  
NOP  
NOP 
DEC DX 
JNZ @N 
LOOP @N1  
IN AL, 61h  
AND AL, 11111100b  
OUT 61h, AL  
end  
end 

있어 나는 또한 N 10000 1000

답변

0

음으로 증가 얻을 필요가 루프에서이 모든 것을 만들기 위해 지금 필요한 그 코드가 경고음을 울리고 한 번 더 경고음을 울리고 싶다면 아마 전화하기가 가장 쉽습니다. 마침내 삑 소리와 같이 작동하는 무언가를 얻을 때마다 혼자 남겨두고 끝 부분에 RET을하고 전화를 겁니다.

그렇기 때문에 AL은 첫 번째 OUT 호출에 의해 손상되므로 도착한 N을 BX에 전달해야합니다.

MOV CX,10 
MOV BX,1000 
@nextN: 
PUSH CX 
PUSH BX 
CALL beep; 
POP BX 
POP CX 
ADD BX,1000 
LOOP @nextN 
RET 
.. 

@beep: 
MOV AL, 10110110b 
OUT 43h, AL 
MOV AX, BX  
.. 
RET  

PS - '숙제'탭이 있습니다.

관련 문제