sprawozdanie TM

Opracowali:

Jakub Kleszcz, Maciej Kołodyński

10.11.2015

SPRAWOZDANIE

Temat: Podprogramy, procedury - obsługa stosu i banków rejestrów.

KOD PROGRAMU Z KOMENTARZAMI

MOV SP, #20H ;ustawienie wierchołka stosu 20H

LJMP START

ORG 100H

START:

MOV A, #30H

MOV DPTR, #40H

MOV 50H, #4H

MOV 51H,#5H

CALL TEST ; wywolanie procedury TEST

LJMP KONIEC

ORG 200H ;poczatek procedury

TEST:

PUSH 50H ;wkladamy na stos kolejne elementy

PUSH 51H

PUSH DPL

PUSH DPH

PUSH B

PUSH PSW

POP PSW

POP B ; zdejmujemy wszystko w kolejnosci odwrotnej

POP DPH

POP DPL

POP 51H

POP 50H

CLR RS1 ;ustawiamy takie wartosci zeby dostac sie do BANK1

SETB RS0

MOV R1, 50H ;w BANK0 wpisujemy wartości do odpowiednich rejestrów

MOV R2, 51H

MOV A,R1

CPL A ; neguje wartość wpisaną w A

MOV R3,A ;wpisuje wartość którą przed chwilą zanegowaliśmy do R3

MOV A, R2

CPL A

MOV R4,A

SETB RS1 ;zmieniamy bank na BANK2

CLR RS0

MOV A,50H

MOV B, 51H

MUL AB ;mnoży wartości wpisane w A i B

MOV R1,A

MOV R2,B

CLR RS1 ;powracamy do BANK0

CLR RS0

RET ; zakończenie procedury i powrót do miejsca jej wykonania

KONIEC:

LJMP KONIEC

END

LISTING PROGRAMU

ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 1

MCS-51 Family Macro Assembler A S E M - 5 1 V 1.3

=====================================================

Source File: C:\Users\kokodyn\Desktop\Mikro\LAB 4\PROGRAM.asm

Object File: C:\Users\kokodyn\Desktop\Mikro\LAB 4\PROGRAM.hex

List File: C:\Users\kokodyn\Desktop\Mikro\LAB 4\PROGRAM.lst

Line I Addr Code Source

1: 0000 75 81 20 MOV SP, #20H

2: 0003 02 01 00 LJMP START

3: N 0100 ORG 100H

4: 0100 START:

5: 0100 74 30 MOV A, #30H

6: 0102 90 00 40 MOV DPTR, #40H

7: 0105 75 50 04 MOV 50H, #4H

8: 0108 75 51 05 MOV 51H,#5H

9: 010B 12 02 00 CALL TEST

10: 010E 02 02 38 LJMP KONIEC

11: N 0200 ORG 200H

12: 0200 TEST:

13: 0200 C0 50 PUSH 50H

14: 0202 C0 51 PUSH 51H

15: 0204 C0 82 PUSH DPL

16: 0206 C0 83 PUSH DPH

17: 0208 C0 F0 PUSH B

18: 020A C0 D0 PUSH PSW

19: 020C D0 D0 POP PSW

20: 020E D0 F0 POP B

21: 0210 D0 83 POP DPH

22: 0212 D0 82 POP DPL

23: 0214 D0 51 POP 51H

24: 0216 D0 50 POP 50H

25: 0218 C2 D4 CLR RS1

26: 021A D2 D3 SETB RS0

27: 021C A9 50 MOV R1, 50H

28: 021E AA 51 MOV R2, 51H

29: 0220 E9 MOV A,R1

30: 0221 F4 CPL A

31: 0222 FB MOV R3,A

32: 0223 EA MOV A, R2

33: 0224 F4 CPL A

34: 0225 FC MOV R4,A

35: 0226 D2 D4 SETB RS1

36: 0228 C2 D3 CLR RS0

37: 022A E5 50 MOV A,50H

38: 022C 85 51 F0 MOV B, 51H

39: 022F A4 MUL AB

40: 0230 F9 MOV R1,A

41: 0231 AA F0 MOV R2,B

42: 0233 C2 D4 CLR RS1

43: 0235 C2 D3 CLR RS0

ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 2

Line I Addr Code Source

44:

45: 0237 22 RET

46: 0238 KONIEC:

47: 0238 02 02 38 LJMP KONIEC

48: END

register banks used: ---

no errors

ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 3

L I S T O F S Y M B O L S

=============================

SYMBOL TYPE VALUE LINE

------------------------------------------------------------

??ASEM_51 NUMBER 8051

??VERSION NUMBER 0130

AC BIT D6

ACC DATA E0

B DATA F0

CY BIT D7

DPH DATA 83

DPL DATA 82

EA BIT AF

ES BIT AC

ET0 BIT A9

ET1 BIT AB

EX0 BIT A8

EX1 BIT AA

EXTI0 CODE 0003

EXTI1 CODE 0013

F0 BIT D5

IE DATA A8

IE0 BIT 89

IE1 BIT 8B

INT0 BIT B2

INT1 BIT B3

IP DATA B8

IT0 BIT 88

IT1 BIT 8A

KONIEC CODE 0238 46

OV BIT D2

P BIT D0

P0 DATA 80

P1 DATA 90

P2 DATA A0

P3 DATA B0

PCON DATA 87

PS BIT BC

PSW DATA D0

PT0 BIT B9

PT1 BIT BB

PX0 BIT B8

PX1 BIT BA

RB8 BIT 9A

RD BIT B7

REN BIT 9C

RESET CODE 0000

RI BIT 98

RS0 BIT D3

RS1 BIT D4

RXD BIT B0

SBUF DATA 99

SCON DATA 98

SINT CODE 0023

ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 4

SYMBOL TYPE VALUE LINE

------------------------------------------------------------

SM0 BIT 9F

SM1 BIT 9E

SM2 BIT 9D

SP DATA 81

START CODE 0100 4

T0 BIT B4

T1 BIT B5

TB8 BIT 9B

TCON DATA 88

TEST CODE 0200 12

TF0 BIT 8D

TF1 BIT 8F

TH0 DATA 8C

TH1 DATA 8D

TI BIT 99

TIMER0 CODE 000B

TIMER1 CODE 001B

TL0 DATA 8A

TL1 DATA 8B

TMOD DATA 89

TR0 BIT 8C

TR1 BIT 8E

TXD BIT B1

WR BIT B6

Lp Rozkaz Wartość SP Wartość PC Zawartość stosu (wszystkie bajty) Opis
1 CALL 20H 0100H

SP przyjmuje wartość 20H, ponieważ taką właśnie przydzieliliśmy za pomocą komendy MOV SP,#20H

PC przyjmuje wartość 100H, ponieważ taki przydzieliliśmy adres (ORG 100H)

2 Pierwszy rozkaz procedury 22H 0200H 0EH, 01H

wywołanie procedury (CALL) spowodowało zapisanie na stosie dwóch bajtów, które są adresem komendy, która następuje po funkcji CALL, czyli po skończeniu procedury - dlatego SP ma 22H

PC przyjmuje 200H, bo taki przydzieliliśmy adres (ORG 200H)

3 RET 22H 0237H 0EH, 01H,04H,05H,40H

Funkcja PUSH i POP została użyta tyle samo razy. Tyle wartości ile włożyliśmy na stos, tyle samo zdjęliśmy - dlatego SP przyjmuje wartość taką jak na początku (22H)

Procedura kończy się pod adresem 0237H

4 Pierwszy rozkaz programu głównego po CALL 20H 010EH 20H ponieważ funkcja RET wyciągnęła ze stosu 2 bajty

TABELA


Wyszukiwarka

Podobne podstrony:
sprawozdanie TM
TM WykIV czII
Wyklad 2 TM 07 03 09
2 definicje i sprawozdawczośćid 19489 ppt
TM w4
PROCES PLANOWANIA BADANIA SPRAWOZDAN FINANSOWYC H
W 11 Sprawozdania
syst tr 1 (2)TM 01 03)13
Wymogi, cechy i zadania sprawozdawczośći finansowej
Analiza sprawozdan finansowych w BGZ SA
W3 Sprawozdawczosc
1 Sprawozdanie techniczne
Karta sprawozdania cw 10
eksploracja lab03, Lista sprawozdaniowych bazy danych
2 sprawozdanie szczawianyid 208 Nieznany (2)

więcej podobnych podstron