Kokoonpanotason ohjelmointi on erittäin tärkeää matalalle tasolle upotettu järjestelmä Suunnittelua käytetään suorittimen ohjeiden käyttämiseen laitteiston manipuloimiseksi. Se on alkeellisin konetason kieli, jota käytetään tehokasta koodia varten, joka kuluttaa vähemmän kellojaksoja ja vie vähemmän muistia verrattuna korkean tason ohjelmointikieli . Ohjelman kirjoittaminen on täydellinen laitteistokeskeinen ohjelmointikieli, jonka ohjelmoijan on oltava tietoinen upotetusta laitteistosta. Tässä tarjoamme kokoonpanotason 8086 perustiedot.
Kokoonpanotason ohjelmointi 8086
Kokoonpanotason ohjelmointi 8086
kokoonpanon ohjelmointikieli on matalan tason kieli, joka on kehitetty muistisanoja käyttäen. Mikrokontrolleri tai mikroprosessori pystyy ymmärtämään vain binäärikielen, kuten 0 tai 1, joten kokoonpanija muuntaa kokoonpanokielen binäärikieleksi ja tallentaa sen muistiin tehtävien suorittamista varten. Ennen ohjelman kirjoittamista sulautetuilla suunnittelijoilla on oltava riittävä tieto ohjaimen tai prosessorin tietyistä laitteistoista, joten ensin vaadimme 8086-prosessorin laitteiston.
Suorittimen laitteisto
8086-prosessorin arkkitehtuuri
8086 on prosessori, joka on edustettuna kaikille oheislaitteille, kuten sarjaväylälle, sekä RAM- ja ROM-, I / O-laitteille ja niin edelleen, jotka kaikki ovat ulkoisesti kytketty keskusyksikköön käyttämällä järjestelmäväylää. 8086-mikroprosessorilla on CISC-pohjainen arkkitehtuuri , ja siinä on oheislaitteita, kuten 32 I / O, Sarjaviestintä , muistoja ja laskurit / ajastimet . Mikroprosessori vaatii ohjelman suorittamaan toiminnot, jotka edellyttävät muistia toimintojen lukemiseen ja tallentamiseen.
8086-prosessorin arkkitehtuuri
Kokoonpanotason ohjelmointi 8086 perustuu muistirekistereihin. Rekisteri on pääosa mikroprosessorit ja ohjaimet jotka sijaitsevat muistissa, mikä tarjoaa nopeamman tavan kerätä ja tallentaa tietoja. Jos haluamme käsitellä tietoja prosessorille tai ohjaimelle suorittamalla kertolasku, yhteenlasku jne., Emme voi tehdä sitä suoraan muistiin, jossa tarvitaan rekisteriä tietojen käsittelemiseksi ja tallentamiseksi. 8086-mikroprosessori sisältää erilaisia rekistereitä, jotka voidaan luokitella niiden ohjeiden mukaan, kuten
Yleiskäyttöiset rekisterit : 8086-keskusyksikkö on koostunut kahdeksasta yleisrekisteristä ja jokaisella rekisterillä on oma nimi, kuten kuvassa näkyy, kuten AX, BX, CX, DX, SI, DI, BP, SP. Nämä kaikki ovat 16-bittisiä rekistereitä, joissa neljä rekisteriä on jaettu kahteen osaan, kuten AX, BX, CX ja DX, joita käytetään pääasiassa numeroiden pitämiseen.
Erityiskäyttöiset rekisterit : 8086-keskusyksikkö on koostunut 2 erikoistoimintorekisteristä, kuten IP- ja lippurekistereistä. IP-rekisteri osoittaa nykyisen suorittavan käskyn ja kerää aina CS-segmenttirekisterin kanssa. Lippurekistereiden päätehtävänä on muokata suorittimen toimintoja mekaanisten toimintojen suorittamisen jälkeen, emmekä voi käyttää sitä suoraan
Segmenttirekisterit: 8086-prosessori on koostunut 4-segmenttisistä rekistereistä, kuten CS, DS, ES, SS, joita käytetään pääasiassa mahdollisten tietojen tallentamiseen segmenttirekistereihin, ja voimme käyttää muistilohkoa segmenttirekistereiden avulla.
Yksinkertaiset kokoonpanokieliohjelmat 8086
Kokoonpanokielen ohjelmoinnissa 8086 on joitain sääntöjä, kuten
- Kokoonpanotaso ohjelmointi 8086 koodi on kirjoitettava isoilla kirjaimilla
- Tarrojen on oltava kaksoispisteen perässä, esimerkiksi: label:
- Kaikkien tarrojen ja symbolien on aloitettava kirjaimella
- Kaikki kommentit kirjoitetaan pienillä kirjaimilla
- Ohjelman viimeinen rivi on lopetettava END-direktiivillä
8086-prosessorilla on kaksi muuta käskyä tietojen käyttämiseen, kuten WORD PTR - sanaa kohti (kaksi tavua), BYTE PTR - tavu.
Op-koodi ja operandi
Op-koodi: Yksittäistä käskyä kutsutaan op-koodiksi, jonka keskusyksikkö voi suorittaa. Tässä MOV-käskyä kutsutaan op-koodiksi.
Operandit: Yksiosaisia tietoja kutsutaan operandeiksi, joita voidaan käyttää op-koodilla. Esimerkki: vähennysoperaatio suoritetaan operandien vähentämillä operandeilla.
Syntaksi: SUB b, c
8086 mikroprosessorin kokoonpanokieliohjelmaa
Kirjoita ohjelma merkin lukemiseen näppäimistöltä
MOV ah, 1h // näppäimistötulon alaohjelma
INT 21h // merkkisyöttö
// merkki tallennetaan al
MOV c, al // kopioi merkki alto c: stä
Kirjoita ohjelma merkin lukemista ja näyttämistä varten
MOV ah, 1h // näppäimistötulon alaohjelma
INT 21h // luetaan merkki al: ksi
MOV dl, al // kopioi merkki dl: ksi
MOV ah, 2h // merkkilähdön alaohjelma
INT 21h // näytä merkki dl: ssä
Kirjoita ohjelma yleiskäyttöisten rekisterien avulla
ORG 100h
MOV AL, VAR1 // tarkista VAR1: n arvo siirtämällä se AL: iin.
LEA BX, VAR1 // hae VAR1: n osoite BX: ssä.
MOV BYTE PTR [BX], 44 h // muokkaa VAR1: n sisältöä.
MOV AL, VAR1 // tarkista VAR1: n arvo siirtämällä se AL: iin.
OIKEA
VAR1 DB 22h
LOPPU
Kirjoita ohjelma merkkijonon näyttämistä varten kirjastotoiminnoilla
sisältää emu8086.inc // Makroilmoitus
ORG 100h
TULOSTA 'Hei maailma!'
GOTOKSI 10, 5
PUTC 65 // 65 - on A: n ASCII-koodi
PUTC 'B'
RET // palaa käyttöjärjestelmään.
END // käsky kääntäjän pysäyttämiseksi.
Aritmeettiset ja logiikkaohjeet
Aritmeettisen ja logiikkayksikön 8086-prosessit on jaettu kolmeen ryhmään, kuten lisäys-, jako- ja lisäysoperaatioihin. Suurin osa Aritmeettiset ja logiikkaohjeet vaikuttaa prosessorin tilarekisteriin.
Kokoonpanokielen ohjelmointi 8086 muistitiedostot ovat op-koodin muodossa, kuten MOV, MUL, JMP ja niin edelleen, joita käytetään toimintojen suorittamiseen. Kokoonpanokielen ohjelmointi 8086 esimerkkiä
Lisäys
ORG0000h
MOV DX, # 07H // siirrä arvo 7 rekisteriin AX //
MOV AX, # 09H // siirrä arvo 9 varaaja AX //
Lisää AX, 00H // lisää CX-arvo R0-arvolla ja tallentaa tuloksen AX: ään //
LOPPU
Kertolasku
ORG0000h
MOV DX, # 04H // siirrä arvo 4 rekisteriin DX //
MOV AX, # 08H // siirrä arvo 8 varaajan AX //
MUL AX, 06H // Kertotulos tallennetaan akun AX //
LOPPU
Vähennyslasku
ORG 0000h
MOV DX, # 02H // siirrä arvo 2 rekisteröidaksesi DX //
MOV AX, # 08H // siirrä arvo 8 varaajan AX //
SUBB AX, 09H // Tulosarvo tallennetaan akkuun A X //
LOPPU
Divisioona
ORG 0000h
MOV DX, # 08H // siirrä arvo 3 rekisteröidaksesi DX //
MOV AX, # 19H // siirrä arvo 5 akun AX //
DIV AX, 08H // lopullinen arvo tallennetaan akun AX //
LOPPU
Siksi tämä on kaikki kokoonpanotason ohjelmoinnin 8086, 8086 -suorittimen arkkitehtuurin yksinkertaiset esimerkkiohjelmat 8086-prosessoreille, aritmeettiset ja logiikkaohjeet.Lisäksi tähän artikkeliin tai elektroniikkaprojekteihin liittyvistä kysymyksistä voit ottaa yhteyttä meihin kommentoimalla alla olevassa kommenttiosassa.