assembler86 9

assembler86 9



78 4. Język asemblerowy mikroprocesorów 8086/8088

PROGRAM SEGMENT

• • •

A DALEKO EQU THIS FAR    ; x    -2    PROGRAM

A:    MOVAX, BX    ;    x    -1    PROGRAM

• ••

PROGRAM ENDS Operator $

Operator $ określa aktualną wartość wskaźnika pozycji asemblera.

Przykład

TEKST_TXT DB 'Mikrokomputery i minikomputery’ DLUGOSC_TXT    DB $ - OFFSET TEKST_TXT

Operatory WIDTH, MASK i SHIFT    __ ___

Operatory te są ściśle związane z dyrektywą RECORD i służą do manipulowania poszczególnymi polami bitów. Operator WIDTH umożliwia obliczenie długości rekordu lub poszczególnych jego pól w bitach. Operator MASK pozwala wyodrębnić pole rekordu do innych celów, np. testowania. Operator SHIFT nie występuje w postaci jawnej (tzn. nie ma takiego słowa kluczowego) i określa liczbę bitów o jaką trzeba by przesunąć pole rekordu w prawo tak, aby najmniej znaczcy bil pola stał się najmniej znaczącym bilem rekordu.

Przykład

; definicja przykładowego rekordu (zob. też p. 4.3.4)

SEMAFORY RECORD ZNACZN1K:2, WOLNY: 1, INDEKS:10 ; przykładowe wywołania rekordu (rys. 4.1)

PRZYKŁAD SEMAFORY < 00B,1, >


ALA SEMAFORY < „45 >

_,_!_I

n

INDEKS


ZNACZNIK


WOLNY


Rys. 4.1.


Następujące wartości poszczególnych symboli są ważne dla ww. definicji


licznik przesunięć (SHIFT)

ZNACZNIK = l£)


maska

(MASK)

MASK ZNACZNIK = 1800H


wielkość w bitach (WIDTH)

WIDTH ZNACZNIK =


powered by

4.4. Wyrażenia i operatory


Mi sto!

WOLNY = 10    MASK WOLNY = 0400H    WIDTH WOLNY = 1

INDEKS = 0    MASK INDEKS = 03FFH    WIDTH INDEKS = 10

WIDTH SEMAFORY = 13

Wykorzystanie tych wartości może być następujące

MOV BX,    PRZYKŁAD

jVlOV CL, WOLNY ; jest równoważne z MOV CL,10

SHR BX, CL    ; pole rekordu w BX przesunięte w prawo

MOV CL, WIDTH INDEKS ; jest równoważne z MOV CL,10

•••

; poniższa sekwencja rozkazów powoduje przeniesienie pola

; ZNACZNIK rekordu PRZYKŁAD do pola ZNACZNIK w rekordzie ALA

; bez zmiany innych pól rekordów

MOV AX,    PRZYKŁAD

ANDAX,    MASK ZNACZNIK

AND ALA,    NOT MASK ZNACZNIK

OR ALA,    AX


Wyszukiwarka

Podobne podstrony:
assembler?86? 4 48 4. Język asemblerowy mikroprocesorów 8086/8088 tępne segmenty będą łączone jak
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? 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? 1 42 4. Język asemblerowy mikroprocesorów 8086/80X8 (ODH). Asembler przetwarza łańcu
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 60 4. Język asemblerowy nuKroprocesorów 8086/8088 ; OOh    16-23 DA
assembler?86? 1 62 4. Język asemblerowy> mikroprocesorów 808618088 oraz    AA

więcej podobnych podstron