Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud...
-
Upload
anthony-chase -
Category
Documents
-
view
225 -
download
3
Transcript of Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud...
![Page 1: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/1.jpg)
Riistvarapõhine programmeerimine
Loeng 6AndmeteisalduskäsudBiti- ja stringikäsudSisend/väljundkäsudSiirdekäsud
![Page 2: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/2.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
2
Andmeedastuskäsud Andmete laadimine Aadresside laadimine Bit-käsud Stringikäsud
![Page 3: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/3.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
3
Andmete laadimine I
Mov A, BXchg A, BPush APop A
![Page 4: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/4.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
4
Mov I
Mov A, B
mov reg, regmov mem, regmov reg, memmov reg, immidiate datamov mem, immidiate datamov segreg, regmov segreg, mem
![Page 5: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/5.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
5
Mov II
![Page 6: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/6.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
6
Mov III
D bit encoding
D = 0reg -> mem
D = 1mem -> reg
![Page 7: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/7.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
7
Mov IV
W bit encoding
W = 0A, B -> 8 bit
W = 1A, B -> 16 bit
![Page 8: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/8.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
8
Mov V
Reg W=0 W=1
000 AL AX
001 BL BX
010 CL CX
011 DL DX
100 AH SP
101 BH BP
110 CH SI
111 DH DI
REG bit encoding
![Page 9: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/9.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
9
Mov VIMod bit encoding
Mod Meaning
00 The r/m field denotes a register indirect memory addressing mode or a base/indexed addressing mode (see the encodings for r/m) unless the r/m field contains 110. If MOD=00 and r/m=110 the mod and r/m fields denote displacement-only (direct) addressing.
01 The r/m field denotes an indexed or base/indexed/displacement addressing mode. There is an eight bit signed displacement following the mod/reg/rm byte.
10 The r/m field denotes an indexed or base/indexed/displacement addressing mode. There is a 16 bit signed displacement (in 16 bit mode) following the mod/reg/rm byte .
11 The r/m field denotes a register and uses the same encoding as the reg field
![Page 10: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/10.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
10
Mov VIIR/M Field Encoding
R/M Addressing mode (Assuming MOD=00, 01, or 10)
000 [BX+SI] or DISP[BX][SI] (depends on MOD)
001 [BX+DI] or DISP[BX+DI] (depends on MOD)
010 [BP+SI] or DISP[BP+SI] (depends on MOD)
011 [BP+DI] or DISP[BP+DI] (depends on MOD)
100 [SI] or DISP[SI] (depends on MOD)
101 [DI] or DISP[DI] (depends on MOD)
110 Displacement-only or DISP[BP] (depends on MOD)
111 [BX] or DISP[BX] (depends on MOD)
![Page 11: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/11.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
11
Mov VIII
Mov reg8, reg8 2 baiti 2
Mov reg16, reg16 2 baiti 2
Mov reg16, mem 2 baiti 8+mem
Mov mem, reg16 2 baiti 9+mem
Mov reg16, imm.data 4 baiti 4
Mov mem16, imm.data 4 baiti 10+mem
Mov segreg,reg16 2 baiti 2
Mov segreg,mem 2 baiti 8+mem
![Page 12: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/12.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
12
Mov IXOperandi suurus – byte/word:mov [bx], 0 ; 0 -> [bx]
mov byte ptr [bx], 0mov word ptr [bx], 0
Segment registers:mov ax, 40hmov es, ax
![Page 13: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/13.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
13
Andmete laadimine II
xchg A, B
xchg reg, mem 2 baiti
xchg reg, reg 2 baiti
xchg ax, reg 1 bait
Lippud: ei mõjuta
![Page 14: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/14.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
14
Andmete laadimine III
push A A -> pinusse
push reg16 push memorypush segreg pushf
Algoritm:SP := SP - 2[SS:SP] := 16 bit operand (store result at location SS:SP.)
![Page 15: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/15.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
15
Andmete laadimine IV
pop A A <- pinust
pop reg16 pop memorypop segreg popf
Algoritm:16-bit operand := [SS:SP]SP := SP + 2
![Page 16: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/16.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
16
Adressite laadimine I
lds reg16, mem32
Agoritm:
reg16 := [mem32]
ds := [mem32 + 2]
![Page 17: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/17.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
17
Adressite laadimine II
les reg16, mem32
Algoritm:
reg16 := [mem32]
es := [mem32 + 2]
![Page 18: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/18.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
18
Adressite laadimine III
lea reg16, mem
Lea ax, 1234h 1234h ->ax
Mov ax, 1234h 1234h ->ax
![Page 19: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/19.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
19
Adressite laadimine IVlea reg16, mem
lea ax, [bx] ; mov ax, bx
lea bx, 3[bx] ; add bx, 3
lea ax, 3[bx] ; add bx, 3; mov ax, bx
![Page 20: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/20.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
20
Adressite laadimine V
lea reg16, mem
lea bx, 128[bp+di]
mov al,[bx]
mov al,[bx]
mov al,128[bp+di]
mov al,128[bp+di]
![Page 21: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/21.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
21
Bit-käsud
test A, B test
bt A, index bit test
btc A, index test and complement
btr A, index test and reset
bts A, index test and set
bsf A, B bit scan forward
bsr A, B bit scan reverse
![Page 22: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/22.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
22
Testtest A, B A & B -> FR
Lipud:Cf -> 0Of -> 0Zf -> vastavalt tulemuseleSf -> vastavalt tulemuselePf -> vastavalt tulemuseleAf -> vastavalt tulemusele
![Page 23: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/23.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
23
BT, BTS, BTR, BTC
Bt ax, 6 ; bit6 -> Cf
Bx = 33Bt A, bx ; bit 1 of A+4-> Cf
; effective address + index/8
![Page 24: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/24.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
24
BSF, BSR I
bsf A, B ; 0 -> 15
bsr A, B ; 15 -> 0
Kui leitud “1”:Zf = 0, B = Bit indexKui ei leitud_Zf = 1, B - määramata
![Page 25: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/25.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
25
BSF, BSR II
Kuidas leida “0”:
1. Kopeerida operand - mov
2. Inverteerida operand - not
3. Otsida “1” - bsf, bsr
![Page 26: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/26.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
26
Set – käsud I
set** reg8
set** mem8
Set** Akui ** = true, A = 1kui ** = false, A = 0
![Page 27: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/27.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
27
Set – käsud II
SET** Instructions That Test Flags
![Page 28: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/28.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
28
Set – käsud III
SET** Instructions for Unsigned Comparisons
![Page 29: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/29.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
29
Set – käsud IV
SET** Instructions for Signed Comparisons
![Page 30: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/30.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
30
Set – käsud V
Bool := A <= B
Bool byte variable
A, B signed integer
mov ax, A
cmp ax, B
setle Bool
![Page 31: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/31.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
31
Set – käsud VIBool := ((A <= B) and (D = E)) or (F <> G)
mov ax, Acmp ax, Bsetle bl ; A <= Bmov ax, Dcmp ax, Esete bh ; D = Eand bl, bh ; (A <= B) and (D = E)mov ax, Fcmp ax, Gsetne bh ; F <> Gor bl, bh ; * or *mov Bool, bh
![Page 32: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/32.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
32
String-käsud I
movs (move string)
lods (load string element into the accumulator)
stos (store accumulator into string element)
scas (Scan string and check for match against the value in the accumulator)
cmps (compare two strings)
ins (input a string from an I/O port)
outs (output a string to an I/O port
![Page 33: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/33.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
33
String-käsud II
rep (repeat a string operation)
repz (repeat while zero)
repe (repeat while equal)
repnz (repeat while not zero)
repne (repeat while not equal)
![Page 34: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/34.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
34
String-käsud II
movs{size - b,w}: es:[di] := ds:[si]
if direction_flag = 0 then
si := si + size;
di := di + size;
else
si := si - size;
di := di - size;
endif;
![Page 35: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/35.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
35
String-käsud III
cmps{size - b,w}: cmp ds:[si], es:[di]
if direction_flag = 0 then
si := si + size;
di := di + size;
else
si := si - size;
di := di - size;
endif;
![Page 36: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/36.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
36
String-käsud IV
lods{size - b,w}: ax/al := ds:[si]
if direction_flag = 0 then
si := si + size;
else
si := si - size;
endif;
![Page 37: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/37.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
37
String-käsud V
stos{size - b,w}: es:[di] := ax/al
if direction_flag = 0 then
di := di + size;
else
di := di - size;
endif;
![Page 38: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/38.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
38
String-käsud VI
scas{size - b,w}: cmp ax/al, es:[di]
if direction_flag = 0 then
di := di + size;
else
di := di - size;
endif;
![Page 39: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/39.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
39
String-käsud VII
ins{size b,w}: es:[di] := port(dx)
if direction_flag = 0 then
di := di + size;
else
di := di - size;
endif;
![Page 40: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/40.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
40
String-käsud VIII
outs{size - b,w}: port(dx) := ds:[si]
if direction_flag = 0 then
si := si + size;
else
si := si - size;
endif;
![Page 41: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/41.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
41
Sisend/väljundkäsud I
in ax/al, port ; inputin ax/al, dx
out port, ax/al ; outputout dx, ax/al
0 < port < 255Ei mõjuta lipud
![Page 42: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/42.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
42
Sisend/väljundkäsud IIRead keyboard from port 60h
in al, 60h ; Read
Sent ‘data’ to printer port 378h
mov dx, 378h ; port to dx
mov al, data ; data to al
out dx, al ; send
![Page 43: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/43.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
43
Siirdekäsud
Tingimatu siire
Tingimussiire
Protseduurid
![Page 44: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/44.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
44
Tingimatu siire Ijmp A
jmp disp8 ;direct intrasegment, 8 bit displacement.jmp disp16 ;direct intrasegment, 16 bit displacement.jmp mem16 ;indirect intrasegment, 16 bit memory operand.jmp reg16 ;register indirect
intrasegment.
![Page 45: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/45.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
45
Tingimatu siire IImov dx, 378h ;Parallel printer port
address.
Loop: in al, dx ;Read character from input port.
xor al, 1 ;Invert the L.O. bit.
out dx, al ;Output data back to port.
jmp Loop ;Repeat forever.
Loop: Statement label
![Page 46: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/46.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
46
Tingimatu siire IIIWordVar word TargetAddress
.
.
.
jmp WordVar
mov ip, WordVar
![Page 47: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/47.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
47
Tingimatu siire IV
jmp ax
mov ip, ax
![Page 48: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/48.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
48
Tingimussiire I
JmpTbl word iffalse, iftrue
.
.
.
mov ax, X
cmp ax, Y
sete bl
jmp JmpTbl[bl*2]
![Page 49: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/49.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
49
Tingimussiire II
J** A
j** disp8
![Page 50: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/50.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
50
Tingimussiire III
![Page 51: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/51.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
51
Tingimussiire IV
![Page 52: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/52.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
52
Tingimussiire V
![Page 53: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/53.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
53
Tingimussiire VIjc Target
jnc SkipJmp
jmp Target
SkipJmp:
128 baiti !!!
![Page 54: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/54.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
54
Kokkuvõte I
Andmeedastuskäsud:movxchglealdsles
![Page 55: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/55.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
55
Kokkuvõte II
Bit – käsud:testbt*set**
![Page 56: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/56.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
56
Kokkuvõte III
String-käsud:mov*sto*loa*cmp*
![Page 57: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/57.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
57
Kokkuvõte IV
Siirdekäsud:jmpj**
![Page 58: Riistvarapõhine programmeerimine Loeng 6 Andmeteisalduskäsud Biti- ja stringikäsud Sisend/väljundkäsud Siirdekäsud.](https://reader035.fdocument.pub/reader035/viewer/2022081511/56649cec5503460f949b80f9/html5/thumbnails/58.jpg)
22/07/2004 ID218 Riistvaralähedane programmeerimine
58
Kokkuvõte V
Sisend / väljundkäsudinout