assembler€86ˆ 1

assembler€86ˆ 1



42 4. Język asemblerowy mikroprocesorów 8086/80X8

(ODH). Asembler przetwarza łańcuch stałych alfanumerycznych (czyli teksty) w ciąg bajtów zawierających kody ASCII kolejnych znaków.

Przykład

'ALA'    â€™4*7*(6 + 9) = ???’

'tekst przykÅ‚adowy'    'abcdcfghijklmnopr'    â–²

Stałe alfanumeryczne o długości jednego bajtu lub jednego słowa mogą być przedstawione także jako stałe numeryczne.

Przykład

MOV BH,’B’    jest równoważne    MOV BH,42H

MOV CX,’B3’    jest równoważne    MOV CX,4233H    *

423.    SÅ‚owa kluczowa

SÅ‚owami kluczowymi nazywamy sÅ‚owa majÄ…ce w jÄ™zyku asemblera specjalne znaczenie. SÄ… one nazwami zastrzeżonymi, co oznacza, że nie mogÄ… być używane do innych celów niż zostaÅ‚o to zdefiniowane, np. jako nazwy etykiet (adresów symbolicznych) lub staÅ‚ych czy zmiennych. PrzykÅ‚ady słów kluczowych

SI - nazwa rejestru,

LODSB - symboliczny kod rozkazu,

DB - dyrektywa generujÄ…ca dane,

WORD - operator,

END - dyrektywa sterujÄ…ca pracÄ… asemblera.

42.4, Nazwy symboliczne. Atrybuty symboli

Nazwy symboliczne sÄ… to ciÄ…gi znaków, które majÄ… dla asemblera szczególne znaczenie, nie sÄ… sÅ‚owami kluczowymi i sÅ‚użą do identyfikacji zmiennych, staÅ‚ych, etykiet (adresów symbolicznych) oraz innych elementów i konstrukcji programu jak: segment, rekord, grupa, parametry formalne itp. (opis tych pojęć znajduje siÄ™ w dalszej części książki). Wszystkie nazwy, aby byÅ‚y poprawne, muszÄ… speÅ‚niać wymagania

-    pierwszy znak nazwy jest literÄ… (a...z, A...Z) lub jednym ze znaków specjalnych: @ _ ?; nazwa może być jednoznakowa, jednak pod warunkiem, że nie jest niÄ… pytajnik;

-    każdy nastÄ™pny znak może być jednym z ww. lub cyfrÄ… dziesiÄ™tnÄ… (0...9);

-    nazwa może mieć dowolnÄ… dÅ‚ugość; tylko 31 pierwszych znaków jest rozróżnianych.

Przykłady

Nazwy prawidÅ‚owe EW    EW1549

DDDDH ?co NUMER 123456 @ 7890


Nazwy nieprawidÅ‚owe 'nazwa' OAla ODDDDH ?

NUMER 123456 $_7890    +

powered by

4.2. Podstawowe elementy języka


Mi stoi

Z każdÄ… nazwÄ… symbolicznÄ… oraz innymi symbolami (np. nazwami rejestrów) s j zwiÄ…zane pewne dodatkowe informacje zwane atrybutami, takie jak: przynależność do segmentu, offset, dÅ‚ugość w bajtach i inne.

trybuty symboli rejestrów i znaczników

Symbol rejestru

Atrybut: klasa (ang. class )

Atrybut: rozmiar (ang. nze)

All.BH.CH.DH

H

1 bajt

al.bl.oldl

L

I bajt

ax.bx.cx.dx

X

2 bajty

BP.SP

P

2 bajty

SI.DI

I

2 bajty

CS.DS.SS,ES

S

2 bajty

AF.CF.DF.IF.OI-.PF.SI.TF.ZF

F

1 bit

Atrybuty nazw zmiennych

Z nazwÄ… zmiennej sÄ… zwiÄ…zane trzy atrybuty

Segment informuje jaki jest adres początku segmentu, do którego jest przyporządkowana zmienna.

Offset informuje o odległości (w bajtach) od początku segmentu.

Typ (ang. type ) informuje, czy zmienna jest bajtem, słowem czy podwójnym słowem.

Atrybuty etykiet (adresów symbolicznych)

Segment informuje jaki jest adres początku segmentu, w którym jest zdefiniowana etykieta.

Offset informuje o odległości (w bajtach) od początku segmentu.

Dystans informuje, czy odwoÅ‚ania do etykiety (rozkazy skoku) znajdujÄ… siÄ™ wewnÄ…trz tego samego segmentu (NEAR), czy leż wystÄ™pujÄ… w innych segmentach (FAR). Atrybut ten powoduje generowanie w czasie asemblacji wÅ‚aÅ›ciwych rozkazów skoku.

Przynależność (ang. cs-assume ) informacja o nazwie segmentu, w którym etykieta jest zdefiniowana. Atrybut umożliwia generowanie w czasie asemblacji właściwych przedrostków segmentów (ang. segment-prefa-byte ).

42.5. Składnia wiersza programu

W wierszu programu źródłowego może znajdować się

instrukcja właściwa, będąca symbolicznym kodem rozkazu maszynowego procesora, zwana instrukcją;

dyrektywa sterujÄ…ca pracÄ… asemblera (i nic pozostawiajÄ…ca Å›ladu w programie wynikowym) bÄ…dź pscudoinstrukcja generujÄ…ca staÅ‚e lub deklarujÄ…ca zmienne, zwana dalej instrukcjÄ…;    ^

Makroinstrukcja, zamieniana w czasie asemblacji na ciąg instrukcji i dyrektyw, a ostatecznie na ciąg rozkazów maszynowych procesora.


Wyszukiwarka

Podobne podstrony:
assembler?86? 1 62 4. JÄ™zyk asemblerowy> mikroprocesorów 808618088 oraz    AA
assembler?86? 0 40 4. Język asemblerowy mikroprocesorów 8086/8088 W książce omówimy wersję MASM 4.
assembler?86? 3 46 4. Język asemblerowy mikroprocesorów 8086/8088 PARA - początek segmentu będzie
assembler?86? 4 48 4. Język asemblerowy mikroprocesorów 8086/8088 tępne segmenty będą łączone jak
assembler?86? 5 50 4. Język asemblerowy mikroprocesorów 8086/8088 ; w kolejnym przykładzie zmienne
assembler?86? 6 52 4. JÄ™zyk asemblerowy mikroprocesorów 8086/8088 MOV AX, DANE 2    
assembler?86? 7 54 4. Język asemblerowy mikroprocesorów 8086/8088 kowych informacji czy skoki do (
assembler?86? 8 56 4. Język asemblerowy mikroprocesorów 8086/8088 433. Połączenia międzymodułowe O
assembler?86? 2 64 4. Język asemblerowy mikroprocesorów 8086/8088 64 4. Język asemblerowy mikropro
assembler?86? 3 66 4. Język asemblerowy mikroprocesorów 8086/8088 66 4. Język asemblerowy mikropro
assembler?86? 4 68 4. Język asemblerowy mikroprocesorów 8086/8088 Dyrektywy .LALL, .SALL, .XALL Dy
assembler?86? 5 70 4. Język asemblerowy mikroprocesorów 8086/8088 .186
assembler?86? 6 72 4. Język asemblerowy mikroprocesorów 8086/8088 72 4. Język asemblerowy mikropro
assembler?86? 7 74 4. Język asemblerowy mikroprocesorów 8086/8088 Przykład ZMIENNA A DW 5*5 ; =
assembler?86? 8 76    4. JÄ™zyk asemblerowy mikroprocesorów 8086/8088 LE (ang. lower
assembler?86? 9 78 4. Język asemblerowy mikroprocesorów 8086/8088 PROGRAM SEGMENT • • • A DALEKO E
assembler?86? 2 44 4. Język asemblerowy mikroprocesorów #086/8088 Wiersz programu kończy się zasad
assembler?86? 9 58 4. Język asemblerowy mikroprocesorów 808618088 Dyrektywy: DB, DW, DD, DQ, DT Li
assembler?86? 0 100 5. Rozkazy mikroprocesorów 8086/80X8 ADD SI, 0F0D2H ADD BL, 1   &nbs

więcej podobnych podstron