06.pdf

(680 KB) Pobierz
Literatura
J. Janiczek, A. Stħpieı: Mikrokontrolery. WCKP, Wrocþaw, 1997
J. Janiczek, A. Stħpieı: Laboratorium systemw mikroprocesorowych.
Cz.1. WEZN, Wrocþaw, 1995
J. Janiczek, A. Stħpieı: Laboratorium systemw mikroprocesorowych.
Cz.2. WEZN, Wrocþaw, 1996
T. Starecki: Mikrokontrolery 8051 w praktyce. BTC, Warszawa 2002
MSP430x4xx. UserÓs Guide. SLAU056C, Texas Instruments, 2003
ST7 FAMILY. PROGRAMMING MANUAL. STMicroelectronics, March
1999
ST7. 8-BIT MCU FAMILY. USER GUIDE. STMicroelectronics, July
2002
Technika cyfrowa 2
wykĀad 6
Katedra Metrologii Elektronicznej i Fotonicznej
Andrzej Stİpieĺ
Jak rozwiīzaġ problem ?
Po co komu stos ?
RozwiĢzanie
stos cc
rejestr LIFO
cc
CALL addr
RET
cc
PUSH arg
POP arg
ALGOL/FORTRAN,
rok 1950
ccc
cc*
Tylko procesory wspþpracujĢce ze stosem mogĢ:
przyjmowaę przerwania
wykonywaę podprogramy obsþugi przerwaı
Typy stosu
Stack Computers
sprzħtowy
cc
c
c
c
Philip J. Koopman, Jr.
programowy
c
ccc
cc
cc
cccc
1
788028909.216.png 788028909.227.png 788028909.238.png 788028909.249.png 788028909.001.png 788028909.012.png 788028909.023.png 788028909.034.png 788028909.045.png 788028909.056.png 788028909.067.png 788028909.078.png 788028909.089.png 788028909.100.png 788028909.111.png 788028909.122.png 788028909.133.png 788028909.144.png 788028909.154.png
 
Stack
Stack Computers - Philip Coopman
TOS
c
  c c c
  c ccc
PUSH
  ccc
cc
c c
c c c
c c
ccc c
POP
Stack Computers
Single vs. multiple stacks - Philip Coopman (1/2)
http://www.ece.cmu.edu/~koopman/stack.html
  Single Stack ccc c
c c
c
c
c
Data
Stack
Return
Stack
  single stack
c
c
Program
Counter
Instruction
Decode
ALU
  single stack
c c
Memory
c
Single vs. multiple stacks - Philip Coopman (1/2)
Stos sprzİtowy - PIC17C4X (Microchip Technology)
  Multiple Stack cc
c
- c
- c
c
c
bufor pierĻcieniowy c
cc
16-poziomowy
c nadpisuje wynik c
c
zerowany ccc
nie jest dostħpny c
c PUSH c
(brak instrukcji PUSH)
c POP
(brak instrukcji POP)
c STKAV (STacK AVailable bit)
c
cc
  Multiple stacks c
  c
Multiple stacks cc cccc
ccc
c ccc
2
788028909.175.png 788028909.183.png 788028909.184.png 788028909.185.png 788028909.186.png 788028909.187.png 788028909.188.png 788028909.189.png 788028909.190.png 788028909.191.png 788028909.192.png 788028909.193.png 788028909.194.png 788028909.195.png 788028909.196.png 788028909.197.png 788028909.198.png 788028909.199.png 788028909.200.png 788028909.201.png 788028909.202.png 788028909.203.png 788028909.204.png 788028909.205.png 788028909.206.png 788028909.207.png 788028909.208.png 788028909.209.png 788028909.210.png 788028909.211.png 788028909.212.png 788028909.213.png 788028909.214.png 788028909.215.png 788028909.217.png 788028909.218.png 788028909.219.png 788028909.220.png 788028909.221.png 788028909.222.png 788028909.223.png 788028909.224.png 788028909.225.png 788028909.226.png 788028909.228.png 788028909.229.png 788028909.230.png 788028909.231.png 788028909.232.png 788028909.233.png 788028909.234.png 788028909.235.png 788028909.236.png 788028909.237.png 788028909.239.png 788028909.240.png 788028909.241.png 788028909.242.png 788028909.243.png 788028909.244.png 788028909.245.png 788028909.246.png 788028909.247.png 788028909.248.png 788028909.250.png 788028909.251.png 788028909.252.png 788028909.253.png 788028909.254.png 788028909.255.png 788028909.256.png 788028909.257.png 788028909.258.png 788028909.259.png 788028909.002.png 788028909.003.png 788028909.004.png
Stack Pointer (SP) (1/2)
Stack Pointer (SP) (2/2)
c
c
(ST72334)
c
(ST72334)
  cc c
c
(ST72264)
c
(ST72264)
c
c
  cc
cc (=1FFh for ST723xx
or =17Fh for ST722xxcc
  c c
ccc
Note c c
c cc
cc Stack overflow is not
indicated
Stack Manipulation
PUSH -
push into the Stack
Syntax
PUSH src
e.g.: push A
src: A, X, Y, CC
Operation
(SP--) <= dst
Description
Save into the stack the dst byte location. The stack pointer is decremented
by one. Used to save a register value.
POP -
CALL - wywoþanie podprogramu
pop from Stack
CALL
CALL Subroutine (Absolute)
CALLR
CALL Subroutine Relative
Syntax
Syntax
c
CALLRdst
e.g.: callr divide32_16
Operation
Operation
Description
c c c
c cc
Description
c c
relative ) c
3
788028909.005.png 788028909.006.png 788028909.007.png 788028909.008.png 788028909.009.png 788028909.010.png 788028909.011.png 788028909.013.png 788028909.014.png 788028909.015.png 788028909.016.png 788028909.017.png 788028909.018.png 788028909.019.png 788028909.020.png 788028909.021.png 788028909.022.png 788028909.024.png 788028909.025.png 788028909.026.png 788028909.027.png 788028909.028.png 788028909.029.png 788028909.030.png 788028909.031.png 788028909.032.png 788028909.033.png 788028909.035.png 788028909.036.png 788028909.037.png 788028909.038.png 788028909.039.png 788028909.040.png 788028909.041.png 788028909.042.png 788028909.043.png 788028909.044.png 788028909.046.png 788028909.047.png 788028909.048.png 788028909.049.png 788028909.050.png 788028909.051.png 788028909.052.png 788028909.053.png 788028909.054.png 788028909.055.png 788028909.057.png 788028909.058.png 788028909.059.png 788028909.060.png 788028909.061.png 788028909.062.png 788028909.063.png 788028909.064.png 788028909.065.png 788028909.066.png 788028909.068.png 788028909.069.png 788028909.070.png 788028909.071.png 788028909.072.png 788028909.073.png 788028909.074.png 788028909.075.png 788028909.076.png 788028909.077.png 788028909.079.png 788028909.080.png 788028909.081.png 788028909.082.png 788028909.083.png 788028909.084.png 788028909.085.png 788028909.086.png 788028909.087.png
CALL - CALL subroutine
RET -
return from subroutine
CALL
CALL Subroutine (Absolute)
CALLR
CALL Subroutine Relative
Syntax
RET
Syntax
c
CALLRdst
e.g.: callr divide32_16
Operation
Operation
Description
c cc
cc
Description
c c
relative ) c
RSP -
Stack Pointer (SP)
reset Stack Pointer
cc
c
c (adres R0 w banku RB1)
Syntax
RSP
Operation
SP = Reset Value (=1FFh)
Description
Reset the stack pointer to its reset initial value.This instruction may be put
as first executed instruction in the reset routine.
RAM
IDATA
SFR
DATA
SP
Trick
It may be used to test current stack size used with an ST7 independent
program.
RAM
IDATA
segment bitowy; 128 bitw: 0 .. 7Fh
4 banki rejestrw: R0 .. R7
Stack Manipulation
PUSH -
push into the Stack / POP -
pop from Stack
Synatx
PUSH addr
Operation
B
B
B
PCH
PCL
PCH
PCH
PCH
PCL
PCL
PCL
Synatx
POP
addr
SP=07h
Operation
addr, e.g.: only Acc not A
After
Reset
cc
4
788028909.088.png 788028909.090.png 788028909.091.png 788028909.092.png 788028909.093.png 788028909.094.png 788028909.095.png 788028909.096.png 788028909.097.png 788028909.098.png 788028909.099.png 788028909.101.png 788028909.102.png 788028909.103.png 788028909.104.png 788028909.105.png 788028909.106.png 788028909.107.png 788028909.108.png 788028909.109.png 788028909.110.png 788028909.112.png 788028909.113.png 788028909.114.png 788028909.115.png 788028909.116.png 788028909.117.png 788028909.118.png 788028909.119.png 788028909.120.png 788028909.121.png 788028909.123.png 788028909.124.png 788028909.125.png 788028909.126.png 788028909.127.png 788028909.128.png 788028909.129.png 788028909.130.png 788028909.131.png 788028909.132.png 788028909.134.png 788028909.135.png 788028909.136.png 788028909.137.png 788028909.138.png 788028909.139.png 788028909.140.png 788028909.141.png 788028909.142.png 788028909.143.png 788028909.145.png 788028909.146.png 788028909.147.png 788028909.148.png
 
CALL - CALL subroutine / RET -
Deklaracja stosu
return from subroutine
ACALL
c
cc
cc
c
cc
c
LCALL
c
c
cc
c
cc
c
c
cccc
c
RET
c
PrzykĀad dostİpu do stosu
Ochrona stanu rejestrw w podprogramach
cccc
c
-
cc c
c
c
c
c
cc
c
cc
cc
cc
c
c
Stos i podprogramy w x86
Stack
c
  c
 
 
  c c
Przetwarzanie danych
  c
 
c
c always c c by
two independent of the byte suffix
Turbo Pascal (Intel x86):
TOS
cc
c
Odd SP addresses will end up in non-predictable
results.
If c
Auto-
inkrementacja
SP
c
c
5
788028909.149.png 788028909.150.png 788028909.151.png 788028909.152.png 788028909.153.png 788028909.155.png 788028909.156.png 788028909.157.png 788028909.158.png 788028909.159.png 788028909.160.png 788028909.161.png 788028909.162.png 788028909.163.png 788028909.164.png 788028909.165.png 788028909.166.png 788028909.167.png 788028909.168.png 788028909.169.png 788028909.170.png 788028909.171.png 788028909.172.png 788028909.173.png 788028909.174.png 788028909.176.png 788028909.177.png 788028909.178.png 788028909.179.png 788028909.180.png 788028909.181.png 788028909.182.png
 
Zgłoś jeśli naruszono regulamin