Comenzi de transfer comandă

Numere nesemnate

Eticheta "jump label" sau "close label" reflectă faptul că eticheta comenzii etichetate trebuie să fie în segmentul de cod curent și la o distanță relativă față de comanda de salt> -128 și <127 байтов. Ограничение –128:127 байтов снято у процессоров, начиная с модели 80386, однако ограничение передачи управления в пределах текущего сегментного кода действует и в моделях Пентиум.







Decizia asupra locului în care va fi transferat controlul comenzii de transfer condiționate se face în funcție de condiție. Sursele acestor condiții pot fi:

Orice comandă care modifică starea steagurilor aritmetice (mai jos, aceste steaguri vor fi listate);

Comanda de comparație CMP.

În recentele publicații privind programarea în Assembler, comanda de comparare CMP este considerată printre comenzile care transmit comanda, deși această comandă este mai aproape de operațiile aritmetice. Acest lucru se explică prin faptul că, de regulă, comenzile de tranziție necondiționată în programe urmează comanda de comparație, deoarece este comparația care stă la baza soluției (simbolul procesului).

Formatul comenzii CMP:

Receptor CMP, sursă sau







Această comandă scade, în esență, operand_1 - operand_2 sau receptorul sursă, dar rezultatul nu scrie nicăieri, ci doar stabilește steagurile în conformitate cu tabelul de mai jos.

Voi da exemple de folosire a comenzilor de salt conditionat.

Să presupunem că lungimile laturilor triunghiului sunt notate cu a, b și c și sunt scrise în variabile de byte cu aceleași nume. Să presupunem valorile pe care programul este verificat laturi ale unui triunghi în ceea ce privește identificarea acestuia: dacă un triunghi cu laturile a, b și c echilateral, isoscel sau generice. Rețineți că laturile triunghiului iau întotdeauna valori pozitive, astfel încât programul trebuie să utilizeze comenzile condiționale ale grupului "fără semn. Vă dau un fragment al schemei de program și instrucțiunile corespunzătoare din limba de asamblare. Nodul și eticheta K denotă comenzile pentru completarea programului. Din moment ce nu am studiat încă comenzi de întrerupere pentru afișarea mesajelor pe ecran, nu există astfel de comenzi în fragmentul de program dat, dar sunt marcate locurile unde ar trebui inserate.

puneți aici comenzile

NU "triunghi echilateral"

NOT_EQABC: CMP AL, BL

.

puneți aici comenzile

DA "triunghi normal"

JMP K; trecerea la K

puneți aici comenzile

Figura Fragment din programul de identificare a triunghiului

Fiți atenți! Comenzile de comparare și de transfer condiționate, tastate în fragmentul programului de mai sus, în italice, implementează funcția logică AND, iar comenzile introduse în font obișnuit implementează funcția logică OR.

Următorul tabel conține instrucțiuni speciale de îmbarcare condiționată.







Articole similare

Trimiteți-le prietenilor: