Mga Simpleng 8086 Assembly Program na Wika na may Paliwanag

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Napakahalaga ng mababang antas ng programa sa antas ng Assembly naka-embed na system Ginagamit ang disenyo upang ma-access ang mga tagubilin sa processor na manipulahin ang hardware. Ito ay isang pinaka-primitive na antas ng makina ng wika ay ginagamit upang makagawa ng mahusay na code na kumakain ng mas kaunting bilang ng mga cycle ng orasan at tumatagal ng mas kaunting memorya kumpara sa mataas na antas ng wika ng programa . Ito ay isang kumpletong wika ng programang nakatuon sa hardware upang sumulat ng isang programa na dapat magkaroon ng kamalayan ang programmer ng naka-embed na hardware. Dito, nagbibigay kami ng mga pangunahing kaalaman sa antas ng pagpupulong na programa 8086.

Assembly Level Programming 8086

Assembly Level Programming 8086



Assembly Level Programming 8086

Ang wika ng programa sa pagpupulong ay isang mababang antas ng wika na binuo sa pamamagitan ng paggamit ng mnemonics. Ang microcontroller o microprocessor ay maaaring maunawaan lamang ang wikang binary tulad ng 0's o 1 samakatuwid ang assembler ay binago ang wika ng pagpupulong sa binary wika at iniimbak ito ng memorya upang maisagawa ang mga gawain. Bago isulat ang programa ang mga naka-embed na taga-disenyo ay dapat magkaroon ng sapat na kaalaman sa partikular na hardware ng controller o processor, kaya kailangan muna naming malaman ang hardware ng 8086 processor.


Hardware ng The Processor

Hardware ng The Processor



8086 Proseso ng Arkitektura

Ang 8086 ay isang processor na kinakatawan para sa lahat ng mga aparatong paligid tulad ng serial bus, at RAM at ROM, I / O na mga aparato at iba pa na lahat ay panlabas na konektado sa CPU sa pamamagitan ng paggamit ng isang system bus. Ang 8086 microprocessor ay mayroon CISC batay arkitektura , at mayroon itong mga peripheral tulad ng 32 I / O, Serial na komunikasyon , alaala at counter / timer . Ang microprocessor ay nangangailangan ng isang programa upang maisagawa ang mga pagpapatakbo na nangangailangan ng isang memorya para mabasa at mai-save ang mga pagpapaandar.

8086 Proseso ng Arkitektura

8086 Proseso ng Arkitektura

Ang antas ng pagpupulong sa programa 8086 ay batay sa mga rehistro ng memorya. Ang isang Rehistro ay ang pangunahing bahagi ng microprocessors at Controller na matatagpuan sa memorya na nagbibigay ng isang mas mabilis na paraan ng pagkolekta at pag-iimbak ng data. Kung nais naming manipulahin ang data sa isang processor o controller sa pamamagitan ng pagsasagawa ng pagpaparami, pagdaragdag, atbp., Hindi namin magawa iyon nang direkta sa memorya kung saan kailangan ng mga pagrehistro upang maproseso at maiimbak ang data. Ang 8086 microprocessor ay naglalaman ng iba't ibang mga uri ng mga rehistro na maaaring mauri ayon sa kanilang mga tagubilin tulad ng

Mga rehistro sa pangkalahatang layunin : Ang 8086 CPU ay binubuo ng 8-pangkalahatang rehistro ng layunin at ang bawat rehistro ay may sariling pangalan tulad ng ipinakita sa pigura tulad ng AX, BX, CX, DX, SI, DI, BP, SP. Ang lahat ng ito ay 16-bit na rehistro kung saan ang apat na rehistro ay nahahati sa dalawang bahagi tulad ng AX, BX, CX, at DX na pangunahing ginagamit upang mapanatili ang mga numero.

Mga rehistro ng espesyal na layunin : Ang 8086 CPU ay binubuo ng 2- mga espesyal na pagrehistro tulad ng IP at flag register. Ang rehistro ng IP ay tumuturo sa kasalukuyang tagubilin sa pagpapatupad at laging gumagana upang makatipon kasama ang rehistro ng segment ng CS. Ang pangunahing pagpapaandar ng mga rehistro sa watawat ay upang baguhin ang mga pagpapatakbo ng CPU pagkatapos makumpleto ang mga pag-andar ng mekanikal at hindi namin direktang ma-access
Mga rehistro sa segment: Ang 8086 CPU ay binubuo ng mga segment ng 4 na rehistro tulad ng CS, DS, ES, SS na pangunahing ginagamit para posible upang mag-imbak ng anumang data sa mga rehistro ng segment at maaari naming ma-access ang isang bloke ng memorya gamit ang mga rehistro ng segment.


Mga Simpleng Program sa Wika ng Assembly 8086

Ang pagpupulong sa wika ng wika 8086 ay may ilang mga patakaran tulad ng

  • Ang antas ng pagpupulong programa 8086 ang code ay dapat na nakasulat sa mga malalaking titik
  • Ang mga label ay dapat na sundan ng isang colon, halimbawa: label:
  • Ang lahat ng mga label at simbolo ay dapat magsimula sa isang liham
  • Ang lahat ng mga komento ay nai-type sa mas mababang kaso
  • Ang huling linya ng programa ay dapat na natapos sa direktang END

Ang mga prosesor ng 8086 ay may dalawang iba pang mga tagubilin upang ma-access ang data, tulad ng WORD PTR - para sa salita (dalawang bytes), BYTE PTR - para sa byte.

Op-Code at Operand

Op-Code at Operand

Op code: Ang isang solong tagubilin ay tinawag bilang isang op-code na maaaring maipatupad ng CPU. Dito ang tagubilin na 'MOV' ay tinawag bilang isang op-code.

Mga pagpapatakbo: Ang isang solong data ng piraso ay tinatawag na mga operan na maaaring mapatakbo ng op-code. Halimbawa, ang pagpapatakbo ng pagbabawas ay ginaganap ng mga operan na binabawas ng operand.
Syntax: SUB b, c

Mga programa sa wikang pagpupulong ng 8086 microprocessor

Sumulat ng isang Programa Para sa Basahin ang isang Character Mula sa Keyboard

I-MOV ah, 1h // subprogram ng input ng keyboard
INT 21h // input ng character
// character ay nakaimbak sa al
MOV c, al // copy character mula sa alto c

Sumulat ng isang Programa Para sa Pagbasa at Pagpapakita ng isang Character

I-MOV ah, 1h // subprogram ng input ng keyboard
INT 21h // basahin ang character sa al
I-MOV dl, al // kopyahin ang character sa dl
MOV ah, 2h // subprogram ng output ng character
INT 21h // display character sa dl

Sumulat ng isang Programa Gamit ang Pangkalahatang Mga Rehistro ng Layunin

ORG 100h
MOV AL, VAR1 // suriin ang halaga ng VAR1 sa pamamagitan ng paglipat nito sa AL.
LEA BX, VAR1 // makakuha ng address ng VAR1 sa BX.
MOV BYTE PTR [BX], 44h // baguhin ang mga nilalaman ng VAR1.
MOV AL, VAR1 // suriin ang halaga ng VAR1 sa pamamagitan ng paglipat nito sa AL.
TAMA
VAR1 DB 22h
WAKAS

Sumulat ng isang Programa Para sa Pagpapakita ng String Gamit ang Mga Pag-andar sa Library

isama ang emu8086.inc // Macro deklarasyon
ORG 100h
I-print 'Hello World!'
GOTOXY 10, 5
Ang PUTC 65 // 65 - ay isang ASCII code para sa 'A'
PUTC 'B'
RET // bumalik sa operating system.
TAPOS // direktiba upang ihinto ang tagatala.

Mga Tagubilin sa Arithmetic at Logic

Ang 8086 na proseso ng arithmetic at lohika unit ay pinaghiwalay sa tatlong pangkat tulad ng karagdagan, dibisyon, at operasyon ng pagtaas. Karamihan Mga Tagubilin sa Arithmetic at Logic makakaapekto sa rehistro ng katayuan ng processor.

Ang pagpupulong ng wika ng pagpupulong na 8086 mnemonics ay nasa anyo ng op-code, tulad ng MOV, MUL, JMP, at iba pa, na ginagamit upang maisagawa ang mga operasyon. Mga programa sa wika sa Assembly ng 8086 mga halimbawa

Dagdagan
ORG0000h
MOV DX, # 07H // ilipat ang halagang 7 sa rehistro na AX //
MOV AX, # 09H // ilipat ang halaga 9 sa accumulator AX //
Magdagdag ng AX, 00H // magdagdag ng halaga ng CX na may halagang R0 at iimbak ang resulta sa AX //
WAKAS
Pagpaparami
ORG0000h
MOV DX, # 04H // ilipat ang halaga 4 sa rehistro na DX //
MOV AX, # 08H // ilipat ang halaga 8 sa accumulator AX //
MUL AX, 06H // Multiplied na resulta ay nakaimbak sa Accumulator AX //
WAKAS
Pagbabawas
ORG 0000h
MOV DX, # 02H // ilipat ang halaga 2 upang irehistro ang DX //
MOV AX, # 08H // ilipat ang halaga 8 sa accumulator AX //
SUBB AX, 09H // Ang halaga ng resulta ay nakaimbak sa Accumulator A X //
WAKAS
Dibisyon
ORG 0000h
MOV DX, # 08H // ilipat ang halagang 3 upang irehistro ang DX //
MOV AX, # 19H // ilipat ang halaga 5 sa accumulator AX //
Ang DIV AX, 08H // huling halaga ay nakaimbak sa Accumulator AX //
WAKAS

Samakatuwid, lahat ng ito ay tungkol sa Assembly Level Programming 8086, 8086 Processor Architecture simpleng mga halimbawa ng programa para sa 8086 processors, Arithmetic at Logic Instructions. Bukod dito, ang anumang mga query tungkol sa artikulong ito o mga proyekto sa electronics, maaari kang makipag-ugnay sa amin sa pamamagitan ng pagkomento sa seksyon ng komento sa ibaba.