Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika...

55
Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine

Transcript of Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika...

Page 1: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

Riistvarapõhine programmeerimine

Loeng 8KümnendaritmeetikaMitmekordse täpsusega aritmeetikaMakrodTingimuslik assembleerimine

Page 2: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

2

Kümnendaritmeetika

Kümnend-andmete formaadid

Liitmine, lahutamine, korrutamine

Jagamine

Page 3: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

3

Kümnend-andmete formaadid I

Unpacked BCD (Binary coded decimal)1 - 0000 00012 - 0000 0010..............................9 - 0000 100110 - 0000 0001 0000 000025 - 0000 0010 0000 0101

Page 4: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

4

Kümnend-andmete formaadid II

Packed BCD (Binary coded decimal)1 - 0000 00012 - 0000 0010..............................9 - 0000 100110 - 0001 000125 - 0010 0101

Page 5: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

5

Kümnend-andmete liitmine I

AAA - Unpacked BCD

if ( (al and 0Fh) > 9 or (AuxC =1) ) thenal := al + 6ah := ah + 1AuxC := 1 ;Set auxiliary carryCarry := 1 ; and carry flags.

elseAuxC := 0 ;Clear auxiliary carryCarry := 0 ; and carry flags.

endifal := al and 0Fh

Page 6: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

6

Kümnend-andmete liitmine II

To add 9 and 3 as BCDs:

mov ax, 9 ;Load 9 as unpacked BCD

mov bx, 3 ;Load 3 as unpacked BCD

add al, bl     ;Add 09h and 03h to get 0Ch

aaa                 ;Adjust 0Ch in AL to 02h,

;increment AH to 01h,

;set carry.

Result 12 (unpacked BCD in AX)

Page 7: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

7

Kümnend-andmete liitmine III

DAA - Packed BCD

if ( (al and 0Fh) > 9 or (AuxC = 1)) then

al := al + 6

AuxC := 1 ;Set Auxiliary carry.

endif

if ( (al > 9Fh) or (Carry = 1)) then

al := al + 60h

Carry := 1 ;Set carry flag.

endif

Page 8: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

8

Kümnend-andmete liitmine IV

To add 88 and 33:

Mov ax, 8833h ;Load 88 and 33 as packed BCDs

Add al, ah ;Add 88 and 33 to get 0BBh

Daa ;Adjust 0BBh to 121 (packed BCD:)

Result Cf=1, 21 in AL

Page 9: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

9

Kümnend-andmete lahutamine I

AAS - Unpacked BCD

if ( (al and 0Fh) > 9 or (AuxC =1) ) thenal := al - 6ah := ah - 1AuxC := 1 ;Set auxilliary carryCarry := 1 ; and carry flags.

elseAuxC := 0 ;Clear auxilliary carryCarry := 0 ; and carry flags.

endifal := al and 0Fh

Page 10: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

10

Kümnend-andmete lahutamine II

To subtract 4 from 13:

Mov ax, 103h ;Load 13 as unpacked BCDMov bx, 4 ;Load 4 as unpacked BCDSub al, bl ;Subtract 4 from 3

;to get FFh (-1)Aas ; Adjust 0FFh in AL to 9,

;   decrement AH to 0,;set carry

Result 9 (unpacked BCD in AX)

Page 11: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

11

Kümnend-andmete lahutamine III

DAS - Packed BCD

if ( (al and 0Fh) > 9 or (AuxC = 1)) then

al := al - 6

AuxC := 1 ;Set Auxiliary carry.

endif

if ( (al > 9Fh) or (Carry = 1)) then

al := al - 60h

Carry := 1 ;Set carry flag.

endif

Page 12: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

12

Kümnend-andmete lahutamine IV

;To subtract 38 from 83:

Mov al, 83h ;Load 83 as packed BCD

Mov ah, 38h ;Load 38 as packed BCDSub al, ah ;Subtract 38 from 83 to get

04Bh

Das ;Adjust 04Bh to 45 (packed BCD:)

Cf=0, 45 in AL

Page 13: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

13

Kümnend-andmete korrutamine I

AAM - Unpacked BCD

Assume ax = al * operand8

ah := ax div 10

al := ax mod 10

Page 14: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

14

Kümnend-andmete korrutamine II

To multiply 9 times 3:

Mov al, 03h ;Load 3 as unpacked BCDs

Mov ah, 09h ;Load 9 as unpacked BCD

Mul ah ;Multiply 9 and 3 to get 1Bh

Aam ;Adjust 1Bh in AL

Result 27 (unpacked BCD in AX)

Page 15: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

15

Kümnend-andmete jagamine I

AAD - Unpacked BCD

Eeldame:

Ax - Jagatav

al := ah*10 + al

ah := 0

Page 16: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

16

Kümnend-andmete jagamine II

To divide 25 by 2:

Mov ax, 205h ;Load 25 as unpacked BCD

Mov bl, 2 ;Load as unpacked BCD

Aad ;Adjust 0205h in AX 

;to get 19h in AX

Div bl ;Divide by 2 to get quotient

;0Ch in AL remainder 1 in AH

Aam ; Adjust 0Ch in Ax;

Result 12 (unpacked BCD in AX), remainder destroyed

Page 17: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

17

Mitmekordse täpsusega aritmeetika

Aritmeetilised käsud Liitmine Lahutamine Võrdlemine Korrutamine

Loogilised käsud Nihkekäsud

Page 18: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

18

Aritmeetilised käsud, liitmine I

Page 19: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

19

Aritmeetilised käsud, liitmine II

X word ?Y word ?Z word ?

mov ax, Xadd ax, Ymov Z, axmov ax, X+2adc ax, Y+2mov Z+2, ax

Page 20: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

20

Aritmeetilised käsud, lahutamine I

var1 word ?

var2 word ?

diff word ?

mov ax, var1

sub ax, var2

mov diff, ax

mov ax, var1+2

sbb ax, var2+2

mov diff+2, ax

Page 21: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

21

Aritmeetilised käsud, võrdlemine I

1. Võrdleme vanem bait,

2. Võrdleme ....

3. Võrdleme noorem bait

Page 22: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

22

Aritmeetilised käsud, võrdlemine II

Qw1 < Qw2

Mov ax, QW1+4 ;Get H.O. wordcmp ax, QW2+4jg NotLessjl IsLessmov ax, dp QW1+2 ;Fall through to here if H.O.cmp ax, dp QW2 +2 ; words are equal.jl IsLess

NotLess:

.

Page 23: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

23

Aritmeetilised käsud, korrutamine I

Page 24: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

24

Aritmeetilised käsud, korrutamine II

Page 25: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

25

Loogilised käsud, AND

Dest = Source1 AND Source2

mov ax, source1and ax, source2mov dest, axmov ax, source1+2and ax, source2+2mov dest+2, ax

Page 26: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

26

Loogilised käsud, OR

Dest = Source1 OR Source2

mov ax, source1or ax, source2mov dest, axmov ax, source1+2or ax, source2+2mov dest+2, ax

Page 27: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

27

Nihkekäsud I

1. 0 -> bit 02. Bit 0 kuni 14 -> shift 13. Bit 15 -> Bit 164. Bit 16 kuni 30 -> shift 15. Bit 31 -> Cf

Page 28: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

28

Nihkekäsud II

Page 29: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

29

Nihkekäsud III

48 bit shift left

shl Operand, 1rcl Operand+2, 1rcl Operand+4, 1

Page 30: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

30

Makrod I

Procedural macrosFunctional macrosLooping macros.

Page 31: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

31

Makrod II

Makro

. . . .

Kood

. . . .

Makro

. . . .

. . . .

Makro

. . . .

. . . .

Kood

. . . .

. . . .

. . . .

Makro

. . . .

Makro

. . . .

Assembler

Page 32: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

32

Makrod III

Procedural macros

name macro {parameter1 {parameter2 {,...}}}

<statements>

endm

Page 33: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

33

Makrod IV

COPY macro Dest, Source

mov ax, Source

mov Dest, ax

endm

Page 34: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

34

Makrod V

copy Y, X

add Y, 5

mov ax, X

mov Y, ax

add Y, 5

Page 35: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

35

Makrod VI

Macro Protseduur

Kordub Ei kordu

Kiir Aeglane

Page 36: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

36

Makrod VII

Long jump if equal vale!!!

LJE macro Dest

jne SkipIt

jmp Dest

SkipIt:

endm

Page 37: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

37

Makrod VIII

Long jump if equal õige!!!

LJE macro Dest

local SkipIt

jne SkipIt

jmp Dest

SkipIt:

endm

Page 38: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

38

Makrod IX

Functional macros

Date macro month, day, yearlocal ValueValue = (month shl 12) or (day shl 7) or yearexitm %Valueendm

DateValue word Date(2, 4, 84)

Page 39: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

39

Tingimuslik assembleerimine I

If / Ife Ifdef / Ifndef Ifb / Ifnb

Page 40: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

40

Tingimuslik assembleerimine II

if expression

if expression ;!= 0<sequence of statements>

else ;=0, optional<sequence of statements>

endif

Page 41: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

41

Tingimuslik assembleerimine III

ife expression

if expression ;= 0<sequence of statements>

else ;!=0, optional<sequence of statements>

endif

Page 42: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

42

Tingimuslik assembleerimine IV

Ifdef / Ifndef expression

DEBUG = 0

ifdef DEBUG ;Debug defined

<place debugging statements here>

endif

Page 43: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

43

Tingimuslik assembleerimine V

Ifb / Ifnb expression

Blank equ <>

NotBlankequ <not blank>

ifb Blank

<this code will assemble>

endif

ifb NotBlank

<this code will not>

endif

Page 44: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

44

Tingimuslik assembleerimine VI

/* comment this out to use the slower C version */

#define LCD_USE_FAST_ASM

. . . .

. . . .

Lcd_demo.h

#ifndef LCD_USE_FAST_ASM

C versioon

. . . .

#else

Assembleri versioon

. . . .

Lcd_driver.c

Page 45: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

45

Side kõrgkeeltega I

C -> Assembler Assembler -> C

Erinevad moodulid “Inline assembler”

Page 46: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

46

Side kõrgkeeltega II

main()

. . . .

Ass (a, b);

. . . .

C moodul

ass PROC 

mov bx, ax

mov cx, dx

. . . .

. . . .

retass  ENDP

Assembleri moodul

Page 47: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

47

Side kõrgkeeltega III 

Power2  PROC          mov     ax, factor    ; Load Arg1 into AX        mov     cx, 1     ; “1” into CX        shl     ax, cl        ; AX=AX *2                              ; Leave return value in AX        retPower2  ENDP        END

Page 48: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

48

Side kõrgkeeltega IV

3*2

#include <stdio.h>

extern int Power2( int factor );void main(){    printf( "3 korda 2 on %d\n", Power2( 3 ) );}

Page 49: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

49

Side kõrgkeeltega V

Inline assembler

foo() {   /* some c code */  

_asm   ; some assembler code   _endasm;  

/* some more c code */   _asm 

; some assembler code   _endasm ;  

/* some more c code */  }

Page 50: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

50

Side kõrgkeeltega VIvoid lcd_init(void){ _asm mov b, #LCD_CONFIG_CMD lcall _lcd_command mov b, #LCD_ON_CMD lcall _lcd_command mov b, #LCD_SHIFT_CMD lcall _lcd_command _endasm;}

Page 51: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

51

Kokkuvõte I

Pakimata andmete korrektsioonid: AAA liitmine AAS lahutamine AAM korrutamine AAD, AAM jagamine

Pakitud andmete korrektsioonid: DAA liitmine DAS lahutamine

Page 52: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

52

Kokkuvõte IIMitmekordse täpsusega aritmeetikaLihtne: Liitmine, lahutamine Võrdlemine

Keeruline: Korrutamine Jagamine

Muud: Loogilised käsud

Page 53: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

53

Kokkuvõte III

MacrodProcedural macrosFunctional macrosLooping macros

Page 54: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

54

Kokkuvõte IV

Tingimuslik assembleerimine

If / Ife

Ifdef / Ifndef

Ifb / Ifnb

Page 55: Riistvarapõhine programmeerimine Loeng 8 Kümnendaritmeetika Mitmekordse täpsusega aritmeetika Makrod Tingimuslik assembleerimine.

02/07/2004 ID218 Riistvaralähedane programmeerimine

55

Kokkuvõte V

Side kõrgkeelega (C) C

Extern ... Assembler

.Model small, C Proto C ................. Proc C ..................