assignment 7274991 2

tone file needed for the assignment.

 

;Program TONE.ASM: Generate a 1 KHz tone on the PC speaker for 5 seconds.
;
        .MODEL SMALL
        .DATA
;Note: You will have to adjust these values to get the 5 seconds.
;The current values give just over 1 second on a 1.3 GHz machine.
OUTER   DW    4000            ;outer loop count
INNER   DW    50000           ;inner loop count

        .CODE
        .STARTUP
        CALL  SPKRON          ;turn speaker on
        MOV   CX,1190         ;divisor for 1 KHz tone
        CALL  LDTIMER         ;set speaker frequency
        CALL  DELAY           ;wait for chosen duration
        CALL  SPKROFF         ;turn speaker off
        .EXIT

SPKRON  PROC  NEAR
        IN    AL,61H          ;read current state of port 61h
        OR    AL,3            ;set speaker control bits
        OUT   61H,AL          ;output new state
        RET
SPKRON  ENDP

SPKROFF PROC  NEAR
        IN    AL,61H          ;read current state of port 61h
        AND   AL,0FCH         ;clear speaker control bits
        OUT   61H,AL          ;output new state
        RET
SPKROFF ENDP

DELAY   PROC  NEAR
        MOV   DX,OUTER
WAIT1:  MOV   CX,INNER
WAIT2:  NOP
        NOP
        NOP
        NOP
        LOOP  WAIT2
        DEC   DX              
        JNZ   WAIT1           
        RET
DELAY   ENDP

;Note: Output frequency equals 1,190,000 divided by CX

LDTIMER PROC  NEAR
        MOV   AL,0B6H         ;timer 2 control word
        OUT   43H,AL
        MOV   AL,CL           ;output lower byte of count
        OUT   42H,AL
        MOV   AL,CH           ;output upper byte of count
        OUT   42H,AL
        RET
LDTIMER ENDP

        END

Looking for a Similar Assignment? Our Experts can help. Use the coupon code SAVE30 to get your first order at 30% off!

Open chat