
2.2.2 Програма на асемблері
Текст програми на асемблері наведений в таблиці 2.1.
Таблиця 2.1 – Програма на асемблері
Мітка |
Мнемоніка |
Коментар |
|
cseg |
; сегмент коду програми |
start: |
mov R3, #00h |
; встановлення початкового значення R3 |
|
mov R4, #00h |
; встановлення початкового значення R4 |
|
mov R5, #00h |
; встановлення початкового значення R5 |
|
call Num2 |
; вибір відповідного значення в таблиці |
|
movx @DPTR,A |
; видача ст. частини на індикацію |
|
mov A, #00h |
; запис числа для виводу нуля в АСС |
|
cseg |
; сегмент коду програми |
start: |
mov R3, #00h |
; встановлення початкового значення R3 |
|
mov R4, #00h |
; встановлення початкового значення R4 |
|
mov R5, #00h |
; встановлення початкового значення R5 |
|
movx @DPTR,A |
; видача ст. частини на індикацію |
; таблиця кодів клавіш |
||
Num1: |
inc A |
; підпрограма переводить код клавіш в двійковий код чисел чи команд |
|
movc A,@A+PC |
|
|
ret |
|
|
db 000000b |
; 0 |
|
db 000001b |
; 1 |
|
db 000010b |
; 2 |
|
db 000011b |
; 3 |
|
db 000100b |
; 4 |
|
db 000101b |
; 5 |
|
db 000110b |
; 6 |
|
db 000111b |
; 7 |
|
db 001000b |
; 8 |
|
db 001001b |
; 9 |
|
db 001010b |
; A |
|
db 001011b |
; B |
|
db 001100b |
; C |
|
db 001101b |
; D |
|
db 001110b |
; E |
|
db 001111b |
; F |
Code: |
inc a |
;підпрограма переводить двійковий код акумулятора в шістнадцятковий код ЖКІ |
|
movc a,@a+pc |
|
|
ret |
; вихід з підпрограми |
|
db 11101110b |
; 0 |
|
db 01100000b |
; 1 |
|
db 00101111b |
; 2 |
|
db 01101101b |
; 3 |
|
db 11100001b |
; 4 |
|
db 11001101b |
; 5 |
|
db 11001111b |
; 6 |
|
db 01101000b |
; 7 |
|
db 11101111b |
; 8 |
|
db 11101101b |
; 9 |
|
db 00101111b |
; A |
|
db 11101110b |
; B |
|
db 11101101b |
; C |
|
db 01101101b |
; D |
|
db 11101101b |
; E |
|
db 11100001b |
; F |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|