Untitled

 avatar
unknown
plain_text
2 months ago
2.3 kB
16
Indexable
	CLO		; Close windows
	JMP START	; go to start
	DB FA		; Move 0 (translated from left seven segment) to RAM location 2;
	DB A		; Move 1 (translated from left seven segment) to RAM location 3;
	DB B6		; Move 2 (translated from left seven segment) to RAM location 4;
	DB 9E		; Move 3 (translated from left seven segment) to RAM location 5;
	DB 4E		; Move 4 (translated from left seven segment) to RAM location 6;
	DB DC		; Move 5 (translated from left seven segment) to RAM location 7;
	DB FC		; Move 6 (translated from left seven segment) to RAM location 8;
	DB 8A		; Move 7 (translated from left seven segment) to RAM location 9;
	DB FE		; Move 8 (translated from left seven segment) to RAM location 10;
	DB DE		; Move 9 (translated from left seven segment) to RAM location 11;

START:
	MOV BL, 64	; BL = 100
	MOV AL, DE 
	OUT 02		; Display number to seven segment display
	MOV AL, DF 
	OUT 02		; Display number to seven segment display

LOOP:
	NOP		; Wait
	NOP		; Wait
	NOP		; Wait
	NOP		; Wait
	NOP		; Wait
	NOP		; Wait
	NOP		; Wait
	NOP		; Wait
	NOP		; Wait
	NOP		; Wait
	NOP		; Wait
	NOP		; Wait

	DEC BL		; BL = BL-1,	Decrease BL by 1

	PUSH BL		; Save BL value to stack		
	
	MOD BL, A  	; BL = BL % A,	Get remainder of dividing 10 from BL
	ADD BL, 3	; BL = BL + 3,	Add 3 to BL to get right RAM address
	MOV AL,[BL]	; AL = RAM[BL], Get AL from RAM location, which BL points to
	INC AL 		; Increase AL, to use right seven segment display
	OUT 02		; Display number to seven segment display
	
	
	POP BL		; BL takes previous BL value from stack
	CMP AL, DF	; Compare BL with 0
	JNZ WAIT	; If BL not 0, jump to LOOP

	PUSH BL 	; Save BL value to Stack
 

	DIV BL, A       ; BL = BL / 10,	Divide BL by 10;
	ADD BL, 3	; BL = BL + 3,	Add 3 to BL to get right RAM address
	MOV AL,[BL]	; AL = RAM[BL], Get AL from RAM location, which BL points to
	OUT 02		; Display number to seven segment display
	
	POP BL		; BL takes previous BL value from stack
	
	CMP BL, 0	; Compare BL with 0
	JNZ LOOP	; If not BL not 0, jump to LOOP
	

WAIT:
	NOP		; Wait
	NOP		; Wait
	NOP		; Wait
	NOP		; Wait
	NOP		; Wait
	NOP		; Wait
	NOP		; Wait
	NOP		; Wait
	JMP LOOP	; jump back to loop
END:
	END		; End programm
Editor is loading...
Leave a Comment