Yksinkertaiset 8086-kokoonpanokieliohjelmat selityksellä

Kokeile Instrumenttia Ongelmien Poistamiseksi





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



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

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

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 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.