8085 微處理器中模擬扔骰子的程式


編寫一個 8085 組合語言程式,以使用中斷模擬擲骰子。

此程式有一個計數器,該計數器對 1 到 6 的範圍進行計數,然後以在無限迴圈中無休止的方式重複計數順序。透過按鍵盤上的“Vect Intr”鍵模擬骰子的投擲得到正面和反面的機率。8085 分支轉到 RST7.5 ISS。在此處,顯示計數器的當前值資料欄位中,該欄位控制計數器操作的延續並返回主程式。因此,我們在 1 到 6 之間的隨機值按“Vect Intr”鍵,該值顯示在資料欄位中,用於模擬擲骰子。

; FILE NAME DIETHROW.ASM

; Main program to reset RST7.5 Flip-Flop, unmask RST7.5, enable interrupts,

; and count from 1 to 6 endlessly in an infinite loop

ORG C000H

CURDT: EQU FFF9H

UPDDT: EQU 06D3H

DELAY: EQU 04BEH

MVI A, 00011011B

SIM ; Reset RST7.5 Flip-Flop, Unmask RST7.5

EI ; Enable interrupt system

; Program segment for an endless counter (1 to 6) loop.

; The 2 NOP instructions are needed because interrupt request

; lines are sensed by 8085 subsequent to JMP BEGIN instruction

; after a short time-interval of about 15 clocks. It may be

; better to have few NOP instructions to provide margin of safety.

BEGIN: MVI A, 01H

LOOP: NOP

NOP

INR A

CPI 06H

JNZ LOOP

JMP BEGIN

; RST7.5 ISS to display the counter value

RST75: STA CURDT

CALL UPDDT ; Display count value in data field

LXI D, FFFFH

CALL DELAY ; Generate a delay of 0.5 second

LDA CURDT

EI

RET

; When VECT INTR key is pressed, RST7.5 line is activated. So

; control is shifted to location 7.5 * 8 = 60 = 003CH. This location

; has JMP FFB1H instruction. (For ESA kit there is JMP 8FBFH). Hence

; it is necessary to write JMP RST75 instruction at location FFB1H.

; This is done by the following 2 instructions.

ORG FFB1H ; For ESA Kit it should be ‘ORG 8FBFH’

JMP RST75

更新於: 30-Jul-2019

447 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始使用
廣告