Tikslai:
1. Suprasti programų rengimo principus.
2. Įgyti programų rengimo įgūdžių.
3. Žinoti algoritmų rengimo principus.
Temos studijoms reikalingas laikas: 1,8 val. teorijos;
10 val. praktika;
8 val. savarankiško darbo.
Programos kuriamos pagal užduoties reikalavimus.
Sudarant nesudėtingas programas, rašoma nuosekli komandų seka pagal užduoties sąlygą. Jei uždavinys sudėtingesnis, tikslinga sudaryti programos algoritmą.
Kai reikia apdoroti masyvų duomenis, rašomos ciklinės programos.
Išnagrinėkite pateiktų programų pavyzdžius:
- Logiškai sudėti registrų B, C ir D turinius , o gautą rezultatą įrašyti į 8600 atminties ląstelę.
Adresas
|
Mašininis kodas
|
Asemblerio komanda
|
Komentaras
|
8200
|
MOV A, B
|
; registro B turinį persiųsti į A
| |
8201
|
ORA C
|
; logiškai pridėti C registro turinį
| |
8202
|
ORA D
|
; logiškai pridėti D registro turinį
| |
8203
|
STA 00 86
|
; registro A turinį nusiųsti adresu 8600
| |
8206
|
RST 8
|
; užbaigti programos darbą
|
- Susumuoti atmintinės ląstelių 8400, 8401 ir 8402 turinius , o gautą rezultatą įrašyti į 8500 atmintinės ląstelę.
Adresas
|
Mašininis kodas
|
Asemblerio komanda
|
Komentaras
|
8200
|
LXI H 00 84
|
; adresą 8400 nusiųsti į registrų porą HL
| |
8203
|
MOV A, M
|
; 8400 ląstelės turinį persiųsti į registrą A
| |
8204
|
INX H
|
; adresą HL poroje padidinti vienetu
| |
8205
|
ADD M
|
; prie A registro turinio prisumuoti 8401 ląstelės turinį
| |
8206
|
INX H
|
; adresą HL poroje padidinti vienetu
| |
8207
|
ADD M
|
; prie A registro turinio prisumuoti 8402 ląstelės turinį
| |
8208
|
STA 00 85
|
; registro A turinį nusiųsti adresu 8500
| |
820B
|
RST 8
|
; užbaigti programos darbą
|
- Sudaryti programą skaičių sumai rasti: sekos ilgis nurodytas ląstelėse 0040 ir 0041, seka prasideda nuo ląstelės 0042H, rezultatas ne didesnis kaip 255 ir įrašomas į ląstelę 0050H.
Adresas
|
Mašininis kodas
|
Asemblerio komanda
|
Komentaras
|
040
|
DUOM
|
EQU 0042H
| |
041
|
REZ
|
EQU 0050H
| |
100
|
XRA A
|
; ištrinti seną registro turinį
| |
101
|
LXI H, DUOM
|
; siųsti sekos ilgio adresą į registrus HL
| |
104
|
MOV B, M
|
; B registre formuoti sekos skaitiklį
| |
105
|
INXH
|
; padidinti adresą
| |
106
|
SUMD:
|
ADD M
|
; pridėti operandą
|
107
|
DCR B
|
; sumažinti sekos ilgį
| |
108
|
JNZ SUMD
|
; kartoti, jei ne visa seka
| |
10B
|
STA REZ
|
; įrašyti rezultatą
| |
10E
|
END
|
Tam, kad gerai suprasti programiškai valdomą duomenų apdorojimą, užpildykite lentelę, nurodydami joje, kaip keičiasi programinio modelio registrų bei atmintinės ląstelių turiniai, vykdant atskiras programos komandas. Įrašyti registrų turinius, po nurodytos komandos įvykdymo).
PC
|
RG A
|
RG B
|
RG H
|
RG L
|
RG F
|
Atmintinė (duomenys, rezultatai)
Adresas
|
Ląstelės turinys
|
Dėmesio !
Simbolinėje programoje galima nenaudoti tikrųjų adresų. Ląstelei 40H suteikiamas simbolinis adresas DUOM. Dirbant su konkrečiu kompiuteriu ar programų derinimo stendu, pagal dokumentaciją nustatomi leistini konkretūs adresai.
Dirbant su programų derinimo stendais asembleriu parašyta programa iš karto koduojama mašininiais kodais, todėl makrokomandos nenaudojamos.
Atskirų tipų programų rengimo principai aptarti laboratorinių darbų teorinėje dalyje.
Komentarų nėra:
Rašyti komentarą