- Ulwimi lweNdibano luququzelela imiyalelo yalo ngenjongo: ukudluliselwa, ukubala, ukulawula ukuhamba, kunye nokunye.
- Umyalelo ngamnye une-opcode kunye nee-operands, ezinefomathi ezahlukeneyo ngokuxhomekeke kulwakhiwo.
- Kukho iindlela ezininzi zokujonga ukufikelela kwidatha, njengokukhawuleza, ngokuthe ngqo, kunye nokungathanga ngqo.
Ulwimi lweNdibano lube yenye yeentsika ezisisiseko zophuhliso lwesoftware ukususela ekuqaleni kwekhompyuter. Nangona iilwimi ezikwinqanaba eliphezulu zilawula imeko namhlanje, iassembler ihlala isetyenziswa ngokubanzi kwaye ifanelekile kwindawo apho ulawulo lwehardware, ukwenziwa ngcono, okanye imiqobo yezixhobo iphambili.
Kweli nqaku, siza kuphonononga nzulu kwiindidi zemiyalelo yolwimi lwendibano, sihlalutya ulwakhiwo, iinjongo, iindlela zokujongana, kunye nendlela ezicwangciswe ngayo kwizakhiwo ezahlukeneyo. Ukongeza, uya kufunda imizekelo, iifomati, kunye nesishwankathelo esibanzi esiya kukuvumela ukuba uqonde ngokupheleleyo ingqiqo emva kwale miyalelo, esebenza ngokusondeleyo kakhulu kwi-hardware.
Uthini umyalelo ngolwimi lwendibano?
Omnye umyalelo wokuhlanganisa Ngumyalelo onokuthi i-CPU iwuqonde ngokuthe ngqo (emva kokuba iguqulelwe kwikhowudi yomatshini ngeprogram yendibano). Umyalelo ngamnye unenjongo ethile kwaye udla ngokuqulunqwa a inkumbulo emele umsebenzi kunye enye okanye ngaphezulu imisebenzi ebonisa apho idatha ithathwa khona kunye/okanye apho iziphumo zigcinwa khona.
Le miyalelo ixhomekeke kakhulu kuyilo lweprosesa, ngoko ke uhlobo ngalunye lwe-CPU (nokuba i-x86, i-ARM, i-MIPS, phakathi kwezinye) ineseti yayo yemiyalelo ene-syntax ethile kunye nesakhono.
Ulwakhiwo lomyalelo
Imiyalelo idla ngokuqulunqwa ngamacandelo amabini:
- Ikhowudi yokusebenza (i-opcode): Ibonisa isenzo esiza kwenziwa, njengokongeza, ukuhambisa idatha, ukuthelekisa, njl.
Ii-operands zibonelela ngolwazi olufunekayo ukwenza umsebenzi kwaye zinokuba kwiirejista, imemori, okanye izinto ezingaguqukiyo. Ayiyiyo yonke imiyalelo Zifuna ii-operands kwaye kwezinye iimeko ezi zinokuthi zibekwe ngqo kumyalelo okanye kwiirejista ezichazwe kwangaphambili.
Iintlobo zemiyalelo kulwimi lwendibano
Ngokuxhomekeke ekusebenzeni kwabo kwiprogram, imiyalelo yolwimi lwendibano ingahlelwa ngokwamaqela amaninzi. Ezona zifanelekileyo zichazwe ngezantsi:
1. Imiyalelo yokudlulisa idatha
Le miyalelo ikuvumela ukuba ukhuphele idatha ukusuka kwenye indawo ukuya kwenye., ngaphandle kokuguqula umxholo wayo kumthombo. Zibalulekile ekuhambiseni ulwazi phakathi kweerejista, imemori kunye neeperipherals.
Eminye yemiyalelo eqhelekileyo kweli qela yile:
- MOV: Ukhuphela imixholo yeoperandi enye ukuya kwenye. Umzekelo,
MOV AX, BX
khuphela imixholo ye-BX ukuya kwi-AX. - MOVS / MOVSB / MOVSW: Uhambisa imitya ukusuka kwidilesi yomthombo (SI) ukuya kwidilesi yendawo (DI), izenzekela inkqubo yogqithiselo.
- I-LODS / LODSB / LODSW: Ilayisha ixabiso elivela kwidilesi eboniswe yirejista ye-SI kwi-accumulator (AL okanye i-AX).
- FUNDA: Ilayisha idilesi esebenzayo endaweni yexabiso. Iluncedo ekufumaneni idilesi yoguquko okanye ulwakhiwo.
2. Imiyalelo yebhetri
I-stack yi-LIFO (yokugqibela ngaphakathi, eyokuqala ngaphandle) isakhiwo esetyenziswa ukugcina okwethutyana idata, ukudlula iparameters, okanye ukugcina umxholo wophumezo.
- DUDULA: Ugcina ixabiso kwi-stack, ehlisa isalathisi se-SP.
- I-POP: Ifumana elona xabiso lamva nje eligcinwe kwisitaki, inyusa iSP.
- PUSHF / POPF: Bagcina kwaye babuyise imeko yeeflegi ze-CPU kwisitaki.
3. Imiyalelo ye-arithmetic kunye nengqiqo
Bavumela ukubala kunye nokusebenza ukuba kwenziwe kwiibhithi. Le miyalelo ibalulekile ekulawuleni idatha yamanani kunye nokwenza izigqibo kuqukuqelo lweprogram.
Phakathi kwezona zisetyenziswa kakhulu sifumana:
- YONGEZA / SUB: Ukudibanisa nokuthabatha.
- MUL / IMUL: Ukuphindaphinda kanambambili.
- DIV / IDIV: Ukwahlula (inani elipheleleyo okanye elisayiniweyo).
- KUNYE / OKANYE / XOR / HAYI: Ukusebenza okunengqondo kweBitwise.
- SHL / SHR / ROL / ROR: Ukutshintsha kancinci kunye nokujikeleza.
4. Imiyalelo yokulawula ukuhamba
Bakuvumela ukuba uguqule ulandelelwano lokwenziwa kwenkqubo, ukwazisa ukutsiba okunemiqathango nokungenamiqathango okanye ukufowuna kweminye imiyalelo.
- JMP: Ngokungenamiqathango tsibela kwenye idilesi ekwinkqubo.
- FONELA / UPHINDE: Tsalela i-subroutine kwaye ubuye.
- JE/JNE/JG/JL/JZ/JNZ: Ukutsiba okunemiqathango, kwenziwa ukuba iimeko ezithile zidibene (emva kokuthelekisa).
5. I-Input / Output (I / O) Imiyalelo
Bavumela iprosesa ukuba inxibelelane nezixhobo zangaphandle. Le miyalelo ikuvumela ukuba ufunde kwaye ubhale idatha ukusuka/ukuya (kwi-hardware) kumazibuko.
- KU: Ufunda idata kwizibuko longeniso.
- IPHELA: Ithumela idatha kwizibuko lemveliso.
6. Imiyalelo yendawo edadayo
IiCPU ezininzi zineeprosesa zezibalo (okanye imiyalelo ekhethekileyo) uzinikele ekusebenzeni ngamanani wokugqibela (indawo edadayo). Le miyalelo ikuvumela ukuba wenze imisebenzi efana nale:
- Ukudibanisa, ukuthabatha, ukuphindaphinda kunye nokwahlula amanani okwenene.
- Imisebenzi ye-Trigonometric (sine, i-cosine, i-tangent).
- Logarithmic, exponential kunye nokusebenza kweengcambu.
Le miyalelo ikholisa ukuhambelana nomgangatho we-IEEE wama-754 ukuchaneka kwamanani.
Iindlela zeedilesi
Inxalenye esisiseko yoyilo lwemiyalelo yindlela yokuchonga apho ii-operands zikhoyo. I iindlela zokujongana chaza indlela iCPU efikelela ngayo kwidatha.
1. Idilesi ekhawulezileyo
Idatha ifakwe ngokuthe ngqo kumyalelo. Iyakhawuleza kodwa ayikuvumeli ukutshintsha amaxabiso ngaphandle kokutshintsha umyalelo.
MOV AX, 5
2. Idilesi ethe ngqo
Idilesi yememori equlethe idatha ichazwe ngokucacileyo.
MOV AX,
3. Intetho engathanga ngqo
Idilesi esebenzayo ifunyanwa kwiziqulatho zerejista. Iguquguquka kakhulu kwaye isetyenziselwa izakhiwo kunye noluhlu oludibeneyo.
MOV AX,
4. Iidilesi ezifakwe kwisalathiso
Idilesi ibalwa ngokongeza isiseko kunye nesalathisi (umzekelo, ukunqumla uluhlu). Sebenzisa iirejista ezikhethekileyo ezifana ne-SI, DI okanye iirejista ze-base + shift.
MOV AX,
Iifomathi zomyalelo: iindidi ezahlukeneyo ngokuxhomekeke kulwakhiwo
Ubume bomyalelo bunokwahluka ngokuxhomekeke kulwakhiwo. Iifomathi eziqhelekileyo ziquka:
Indlela ye-4 ifomathi
Ibandakanya ii-operands ezimbini, indawo yesiphumo, kunye nedilesi yomyalelo olandelayo. Namhlanje ayisasetyenziswa ngenxa yokuntsonkotha kwayo.
Indlela ye-3 ifomathi
Ikhankanya ii-operands ezimbini kunye nedilesi yendawo ekuyiwa kuyo. Iqhelekile kwi-architectures yanamhlanje ye-RISC.
Indlela ye-2 ifomathi
Isebenzisa umthombo kunye nomsebenzi wokusingwa (indawo ekuyiwa kuyo inokubonelela ngexabiso). Idumile kwi-x86 kunye nezinye izakhiwo ze-CISC.
Indlela ye-1 ifomathi
I-operand enye kuphela ebonisiweyo; enye ifanele ukuba yi-accumulator. Okuqhelekileyo kwiiprosesa ezindala kunye neenkqubo ezilula.
0-ifomati yedilesi (esekwe kwisipaki)
Imisebenzi isebenzisa istaki ukukhupha nokugcina imisebenzi kunye neziphumo. Isebenza kakuhle kakhulu koomatshini abasebenzisa ibhetri, njengezinye izixhobo zokubala ezicwangcisekileyo.
Imiyalelo yeMacro kunye ne-pseudo-opcodes
Ukuphucula imveliso, abaninzi abahlanganisi banikezela macroinstructions, eyandisa umgca omnye kwimiyalelo yokwenyani emininzi. Ziyaluncedo ekunqandeni ukuphindaphinda iipatheni eziyinkimbinkimbi okanye ekudaleni izakhiwo eziphakamileyo ezinjengama-loops okanye izakhiwo ezinemiqathango.
Los ipseudo-opcodes Ziyimiyalelo ukuba i-assembler iguqulela ngaphakathi kulandelelwano lwangempela lwemiyalelo. Umzekelo, NOP
(akukho msebenzi) inokuguqulelwa njenge XCHG AX, AX
kwi-x86 CPU.
Imiyalelo yokuhlanganisa
Imiyalelo (ikwabizwa ngokuba yi-pseudo-operations) ayiyomiyalelo ngeseshini nganye. Zisetyenziselwa ukulawula inkqubo yendibano, ukuchaza idatha, amacandelo ekhowudi, i-macros, iimeko zokudibanisa, njl.
Imizekelo eqhelekileyo ibandakanya:
- .data / .code: Zibonisa idatha okanye icandelo lekhowudi.
- .org: Iseta idilesi apho indibano iya kuqala khona.
- .equ: Ichaza imizobo yomfuziselo.
Amatyala okusetyenziswa kolwimi kwiNdibano
Ngaphandle kokukhula kweelwimi ezikumgangatho ophezulu, I-assembler ihlala ingundoqo kwiindawo ezininzi:
- Ukuphuhliswa kweenkqubo ezidibeneyo kunye ne-microcontroller.
- Abaqhubi beprogram, ii-bootloaders kunye ne-BIOS.
- Ukulungiswa okugqithisileyo kwizicelo ezinje ngemidlalo yevidiyo okanye i-cryptography.
- Ukubuyisela umva ubunjineli, ukulungisa ingxaki, kunye nokuqhekezwa kwenqanaba eliphantsi.
Ukongeza, uqeqesho lolwimi lwendibano lusaqhubeka ithatha indawo ebalulekileyo kwimisebenzi yesayensi yekhompyuter kunye ne-electronics, njengoko inikezela ukuqonda okunzulu malunga nendlela iprosesa esebenza ngayo, indlela idatha egcinwe ngayo kwaye iqhutywe ngayo, kunye nendlela imiyalelo eyenziwa ngayo kwinqanaba lokubini.
Ukuqonda zonke iintlobo zemiyalelo yendibano, ubume bazo, ukusebenza kwazo, kunye neendlela zokujongana kubonelela ngesiseko esiluqilima kuye nawuphi na umdwelisi wenkqubo ofuna ukukhangela kwinkqubo ephantsi okanye aqonde ukuba iilwimi ezikwinqanaba eliphezulu ziguqulelwa njani kwikhowudi yomatshini. Nangona ukusetyenziswa kwayo kuye kwacaca ngakumbi, ihlala isisixhobo esibalulekileyo kwiindawo ezininzi ezibalulekileyo zesoftware kunye nophuhliso lweenkqubo.