2.4. Formatul Word
Știm deja că echipa
Amintiți-vă că scrierea octalică nu este decât o modalitate convenabilă de a reprezenta starea cuvântului PDP-11 pe 16 biți. Din capătul din dreapta reprezintă cifra octal trei cifra din dreapta la 0 la 2. Următoarele patru cifre octale reprezintă biții secvențial de la 3 la 5, 6 la 8, 9 la 11 și 12 până la 14. în reprezentarea a șasea și ultima cifră octal cuvinte PDP-11 a fost doar un pic, astfel încât acest număr poate fi 0 sau 1. Astfel, 0052 (cod de comandă INC) este de fapt de 10 biți.
Pentru confortul imaginilor în format de cuvânt, specificăm limitele cifrelor octale și punctul central al cuvântului.
Modul 6 se numește modul index; echipă
Putem trata acest lucru ca o comandă INC (R1). Dar din moment ce au fost folosite toate biții cuvântului, nu există unde să punem informații despre asta. corespunde MEM. Asamblatorul va trimite o referință la MEM în următorul cuvânt al programului. Deci, în PDP-11
o comandă de limbă de asamblare poate ocupa mai mult de un cuvânt.
005261 INC MEM (R1)
Utilizarea conținutului registrului
atunci blocul WRD trebuie să fie format din 2, 4, 1, 3, deoarece cel mai mic element de date este pe locul 2 din listă și așa mai departe.
1. Selectează primul cuvânt al comenzii din memorie.
2. Creste PC-ul.
4. Efectuează o creștere sau scădere automată a conținutului registrului sursă.
6. Efectuează o creștere sau scădere automată a conținutului registrului receptorului.
2. Încercați să îmbunătățiți programul de sortare de la §2.3.
E Niciun operator .END; emise de majoritatea asamblorilor
M Aceeași etichetă este utilizată de mai multe ori
Caracterul nedefinit
UPPAZHNENIYA. 1. Luați în considerare rezultatul executării comenzii ADD R1, - (R1) luând în considerare și fără a ține seama de remarca la etapa 7.
2. Determinați modul în care sistemul dvs. percepe astfel de comenzi.
022701 CMP (PC) +, R1
000100 .WORD 100
Al doilea cuvânt conține pur și simplu operatorul O 100. În primul cuvânt, PC-ul este contorul de comandă. În PDP-11, contorul de instrucțiuni este unul din registrele comune disponibile pentru utilizator. De fapt, acesta este registrul 7, iar dacă asamblatorul dvs. nu recunoaște un mnemonic obișnuit pentru un astfel de registru, ceea ce este foarte posibil, atunci programul dvs. trebuie să includă un operator de atribuire
Același rezultat ar putea fi obținut, deși mai puțin eficient, după cum urmează: mai întâi, zero R0. apoi rulați comanda
026001 CMP 100 (RO), R1
2. Va fi obținut 101 după executarea comenzii INC # 100?
3. Care este rezultatul execuției secvențelor
(a) INC (PC) (b) INC (PC) +
000100 005067 CLR MEM
000,376,000,000 MEM. WORD 0
În cazul general, X trebuie să fie egal cu
În operatorii de limbaj de asamblare, numerele negative sunt reprezentate în mod obișnuit cu ajutorul semnului -. De exemplu,
Observați că -2 (R1) înseamnă numărul -2, modificat de conținutul lui R1 (deloc conținut cu un semn minus). Aceasta este o modalitate convenabilă de a întoarce un cuvânt din cuvântul indicat de R1. fără a schimba conținutul lui R1.
Desigur, cifrele negative pot fi obținute și ca rezultat al calculelor. Reprezentarea unui număr negativ în cuvântul PDP-11 nu depinde de modul în care a apărut acolo. Bitul de cuvinte 15 este numit o cifră semnată și este setat la 1 pentru numere negative. Cu toate acestea, după cum puteți face cu ușurință sigur (cum?), Ideea de, să zicem, 1 este foarte diferită de prezentarea -1, nu doar zero sau unul în descărcarea de gestiune 15. În arhitectura PDP-11 pentru a reprezenta numere negative folosind codul binar suplimentar așa-numitele număr (sau adăugare binară). Dacă X este un număr pozitiv, atunci pentru a forma reprezentarea -X, avem nevoie de:
Formați reprezentarea lui X; deoarece X este un număr pozitiv, bitul semn este zero și biții 0 până la 14 conțin codul binar X.
Scădere 1.
Înlocuiți toate zerouri cu cele și cu zerouri.
Având un astfel de aranjament, cel mai mare număr pozitiv care poate fi stocat în cuvântul PDP-11 are 0 în biți 15 și 1 în toate celelalte. Reprezentarea octală a acestuia este 077777, iar valoarea zecimală este 2 15 -1 = 32 767.
Rețineți că -1 este reprezentat de cele din toate cifrele: 177777, -2 este 177776, etc. Avem următoarea gamă de valori:
Rețineți că, dacă este folosit corect, vom descrie -2 ca număr, mai puțin de -1, etc.
O analogie cu un vitezometru care rulează în direcția opusă poate clarifica puțin semnificația acestui tabel de valori. În orice caz, o conștientizare mai mare va face în curând mai puțin misterioasă.
UPPAZHNENIYA. 1. Cum să prezentăm un număr negativ O 100000 sub forma cuvântului PDP 11?
2. Descrieți o metodă sistematică de obținere a codului reprezentării octale a unui număr negativ, pornind de la un număr pozitiv X.
3. Care este rezultatul comenzilor
Ce crezi că e prinderea?
4. Dacă există 7777 în R0, care este rezultatul execuției comenzii INCR0.
Programarea în limba de asamblare și organizarea mașinii