Ma'lumotlarni uzatish bo'yicha ko'rsatmalar
Mnemonika operandlari
Tavsif
FlagsCycles operatsiyasi
MOV Rd, Rr MOVWRd, Rr
LDI
LDS LD
Rd, K8
Rd, k
Rd, X
Nusxa ko'chirish Ro'yxatdan nusxa ko'chirish Ro'yxatdan
o'tish juftligi
Doimiy yuk To'g'ridan- to'g'ri yuk Bilvosita yuk
O'sishdan keyingi yuk
Rd = Rr Rd+1:Rd =
Rr+1: Rr, r,d juft
Rd = KYo'q 1 Rd = (k)
Rd=(X)
Yo'q 1
Yo'q 1
Yo'q 2* Yo'q 2*
LD Rd, X+
LD Rd,-X
Bilvosita yuk Oldindan o'sish bilan bilvosita yuk
Rd = (X), X=X+1 Yo'q 2*
X=X-1, Rd = (X) Yo‘q 2*
LD Rd, Y
Bilvosita yuklash Post-
Rd=(Y)
Yo'q 2*
LD LD
LDD Rd,Y+q
Rd, Y+ Rd,-Y
increment bilan bilvosita yuklash
Oldindan dekrement bilan bilvosita yuklash
Bilvosita yuklash
almashtirish bilan
Rd = (Y), Y=Y+1 Yo'q 2* Y=Y-1, Rd = (Y) Yo'q 2*
Rd = (Y+q) Yo'q 2*
LD Rd, Z
Bilvosita yuklash
Rd=(Z)
Yo'q 2*
LD Rd, Z+
LD Rd,-Z
Bilvosita yuklash keyingi o'sish bilan
bilvosita yuklash
Rd = (Z), Z=Z+1 Yo'q 2*
Z=Z-1, Rd=(Z)Yo‘q 2*
Oldindan o'sish bilan bilvosita yuklash
LDD Rd,Z+q
O'zgartirish bilan bilvosita yuklash
Rd = (Z+q) Yo‘q 2*
Mnemonika operandlari
Tavsif
FlagsCycles operatsiyasi
STS ST
k,Rr X, Rr
To'g'ridan-to'g'ri do'kon Bilvosita do'kon Post-o'sish
(k) = Rr
(X) = Rr
Yo'q 2* Yo'q 2*
ST X+, Rr
ST -X, Rr
bilan bilvosita do'kon
Oldindan dekrement bilan bilvosita saqlash
(X) = Rr, X=X+1 Yo‘q 2*
X=X-1, (X)=Rr Yo‘q 2*
ST Y, Rr
Bilvosita tejash
(Y)=RR
Yo'q 2*
ST Y+, Rr
ST -Y, Rr
ST Y+q, Rr
Keyingi o'sish bilan bilvosita do'kon
Oldindan dekrement bilan bilvosita saqlash
O'zgartirish bilan bilvosita saqlash
(Y) = Rr, Y=Y+1 Yo‘q 2
Y=Y-1, (Y)=RR Yo‘q 2
(Y+q) = Rr Yo‘q 2
ST Z, Rr
Bilvosita tejash
(Z) = Rr
Yo'q 2
ST Z+, Rr
ST -Z, Rr
ST Z+q,Rr
Keyingi o'sish bilan bilvosita do'kon
Oldindan dekrement bilan bilvosita saqlash
Bilvosita tejash
almashtirish bilan
(Z) = Rr, Z=Z+1 Yo‘q 2
Z=Z-1, (Z)=Rr Yo‘q 2
(Z+q) = Rr Yo‘q 2
LPM
LPM
Yo'q
Rd, Z
Dasturiy ta'minotdan yuklanmoqda
xotira
Dasturiy ta'minotdan yuklanmoqda
xotira
R0 = (Z)
Rd=(Z)
Yo'q 3
Yo'q 3
LPM Rd, Z+
ELPM
ELPM Rd, Z
Yo'q
Dasturiy ta'minotdan yuklanmoqda
xotira
keyingi o'sish bilan
Dastur xotirasidan kengaytirilgan yuklash
Dastur xotirasidan kengaytirilgan yuklash
Dastur xotirasidan
Rd = (Z), Z=Z+1 Yo‘q 3
R0 = (RAMPZ:Z) Yo'q 3
Rd = (RAMPZ:Z) Yo'q 3
Rd =
ELPM Rd, Z+
SPM
ESPM
Yo'q
Yo'q
kengaytirilgan yuklash
keyingi o'sish bilan
Dastur xotirasida saqlash
Kengaytirilgan Saqlash dastur xotirasi
(RAMPZ:Z), Z=
Z+1
(Z) = R1:R0 Yo'q ÿ (RAMPZ: Z) =
R1: R0
Yo'q 3
yo'q
Mnemonika operandlari
Tavsif
FlagsCycles operatsiyasi
IN OUT DURANG
POP
Rd, P P, Rr
Rr
Rd
O'qish porti Port yozish stekdagi
pop registr STACK = Rr Yo'q 2
dan registrni chiqarib oling
stack
Rd=P P=RR
Rd = STACK Yo'q 2
Yo'q 1
Yo'q 1
* Ma'lumotlarga kirish operatsiyalari uchun tsikllar soni ichki ma'lumotlar xotirasiga kirish sharti
bilan belgilanadi va tashqi ma'lumotlar bilan ishlashda to'g'ri emas.
RAM. LD, ST, LDD, STD, LDS, STS, PUSH va POP ko'rsatmalari talab qilinadi har bir kutish uchun bitta pastadir va bitta pastadir qo'shing. Bit ko'rsatmalari
Mnemonika operandlari LSL Rd
Tavsif
Mantiqiy siljish
Chapga
Operatsiya Rd(n+1)=Rd(n),
C=Rd(7)
Bayroqlar sikllari
Z,C,N,V,H,S 1 Rd(0)=0,
LSR
Rd Mantiqiy siljish
to'g'ri
Tsiklik siljish
Rd(n)=Rd(n+1), Rd(7)=0, C=Rd(0)
Rd(0)=C,
Z, C, N, V, S
bitta
ROL
Rd
C orqali qolgan
Tsiklik siljish
C=Rd(7) Z,C,N,V,H,S 1 Rd(n+1)=Rd(n),
Rd(7)=C,
ROR
Rd
to'g'ridan-to'g'ri C orqali
Rd(n)=Rd(n+1), C=Rd(0)
Z, C, N, V, S
bitta
ASR
Rd Arifmetika Rd(n)=Rd(n+1),
Z, C, N, V, S
bitta
SWAP
o'ngga siljish
Tetradalarni almashtirish
n=0,...,6
Rd(3..0) = Rd Rd(7..4), Rd(7..4)
= Rd(3..0)
Yo'q
bitta
BSET
s Bayroqni o'rnatish
SREG(lar) = 1
SREG(lar)
bitta
BCLR
s bayroqni tozalash
SREG(lar) = 0 SREG(lar)
bitta
SBI
CBI
BST
BLD
SEC
P, b
P, b
Rr, b
Rd, b Yo'q
bitni o'rnatish
portda aniq bit
portda
bitni registrdan T ga saqlash T dan
registrga bitni yuklash Tashish
bayrog'ini o'rnatish
I/U(P, b) = 1
I/U(P, b) = 0
T = Rr(b)
Rd(b) = T C=1
Yo'q
Yo'q
T
Yo'q
C
2
2
bitta
bitta
bitta
Mnemonika operandlari
Tavsif
Yuk tashish
Operatsiya
Bayroqlar sikllari
CLC
SEN
Yo'q
Yo'q
bayrog'ini tozalang
Salbiy bayroqni o'rnating
raqamlar
C=0
N=1
C bitta
N bitta
CLN
EIZ
Yo'q
Yo'q
Salbiy belgini tozalang
raqamlar
Nolinchi bayroqni
o'rnating
N=0
Z = 1
N bitta
Z bitta
CLZ
Yo'q Tozalash nol bayrog'i
Z = 0
Z bitta
SEI
CLI
SES
Yo'q
Yo'q
Yo'q
xalaqit beradi Interrupt belgisini
o'chirish
bayroqni o'rnatish
imzolangan raqamlar
I = 1
I=0
S=1
I bitta
I bitta
bitta
CLN
Yo'q
Raqam belgisini tozalash
imzolangan
S=0
S bitta
SEV
CLV
SET CLT
SEH
Yo'q
Yo'q
Yo'q Yo'q
Yo'q
To'ldirish bayrog'ini o'rnating
toza toshib ketgan bayroq
Bayroqni o'rnatish T
Bayroqni tozalash T Bayroqni o'rnatish
ichki transfer
V = 1
V = 0
T=1 T=0
H=1
V bitta
V bitta
bitta
T bitta
H bitta
CLH YO'Q
UYQU
WDR raqami
Yo'q Yo'q
Yo'q
Ichki tashish bayrog'ini tozalang
Operatsiya yo'q
uyqu (kamaytirish Energiya iste'moli)
Qo'riqchini tiklash
taymer
H=0
Yo'q Qarang
tavsifi
ko'rsatmalar
Qarang
tavsifi
ko'rsatmalar
H
Yo'q
Yo'q
Yo'q
bitta
bitta
bitta
bitta
Assembler belgilarning holatini ajratmaydi.
Operandlar quyidagi shakllarda bo'lishi
mumkin: Rd: registr faylida natijaviy (va manba) registr Rr: registr faylida manba registri
b: Constant (3 bit), doimiy ifoda bo'lishi mumkin s: Constant (3 bit), doimiy ifoda bo'lishi mumkin P: Constant (5-6 bit), doimiy ifoda K6; Doimiy (6 bit), doimiy ifoda bo'lishi mumkin K8: Konstant (8 bit), doimiy ifoda bo'lishi mumkin k: Konstant (hajmi ko'rsatmalarga bog'liq), doimiy ifoda bo'lishi mumkin q: Doimiy (6
bit), bo'lishi mumkin. doimiy ifoda Rdl : R24, R26, R28, R30. ADIW va SBIW ko'rsatmalari uchun X,Y,Z: Bilvosita registrlar (X=R27:R26,
Y=R29:R28, Z=R31:R30)
Assambleya ko'rsatmalari
Kompilyator bir qator ko'rsatmalarni qo'llab-quvvatlaydi. Direktivlar to'g'ridan-to'g'ri kodga tarjima qilinmaydi. Buning o'rniga ular uchun ishlatiladi dastur xotirasidagi pozitsiyani ko'rsatish, makroslarni aniqlash, xotirani ishga tushirish va hokazo. Ko'rsatmalar ro'yxati Jadvalda keltirilgan. 1. 1 -jadval
Jadvalning oxiri. bitta
Barcha direktivalar oldidan nuqta qo'yiladi.
BYTE - RAMdagi baytlarni zahiralash
BYTE direktivasi operativ xotirada baytlarni saqlaydi. Agar Siz hohlasangiz ajratilgan xotira maydoniga murojaat qilish imkoniyatiga ega bo'lish, keyin BYTE direktivasi oldida yorliq bo'lishi kerak. Direktiv ajratiladigan baytlar sonini belgilaydigan bitta talab qilinadigan parametrni oladi. Ushbu ko'rsatma faqat ma'lumotlar segmentida ishlatilishi mumkin (CSEG va DSEG ko'rsatmalariga qarang). Bag'ishlangan
baytlar ishga tushirilmagan.
Sintaksis:
TAG: .BYTE ifodasi
Misol:
.DSEG
var1: .BYTE 1
jadval: .BYTE
tab_size .CSEG ldi
; var1 uchun 1 bayt zaxira qiladi
; tab_size baytlarini zahiraga oladi
r30,low(var1) ; Z registrining past baytini yuklash ldi r31,high(var1) ; Z ld r1,Z registrining yuqori baytini yuklash; VAR1 ni 1 registriga yuklaydi
CSEG - Dastur segmenti
CSEG direktivasi dastur segmentining boshlanishini belgilaydi. Manba fayl bir nechta dastur segmentlaridan iborat bo'lishi mumkin, ular kompilyatsiya qilinganda bitta dastur segmentiga birlashtiriladi. Dastur segmenti standart segmentdir. Dastur segmentlarida o'z pozitsiyalari hisoblagichlari mavjud bo'lib,
ular bayt bo'yicha emas, balki so'z bilan hisoblanadi. ORG direktivasi segmentda kerak bo'lganda kod va konstantalarni joylashtirish uchun ishlatilishi mumkin.
CSEG direktivasi hech qanday parametrga ega emas.
Machine Translated by Google
Sintaksis:
.CSEG
Misol: .DSEG ; Ma'lumotlar segmenti
vartabining boshlanishi: .BYTE 4 ; Operativ xotirada 4 baytni saqlaydi
.CSEG ; Kod segmentining boshlanishi
const: .DW 2 ; 0x0002 doimiysini dastur xotirasiga joylashtiring mov r1,r0 ; Amallarni bajarish
Do'stlaringiz bilan baham: |