A51 MACRO ASSEMBLER POKUSNY PROGRAM DATE 10/3/007 PAGE 1



Podobné dokumenty
Překladač - Assembler, úloha SW_ UART

Překladač - Assembler. kat. měření, ČVUT - FEL, Praha A3B38MMP, X38MIP Přednáška 3 - část. J. Fischer

Čísla, reprezentace, zjednodušené výpočty

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Mikrořadiče řady 8051.

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

Čísla, reprezentace, zjednodušené výpočty

Překladač - Assembler. ČVUT- FEL, katedra měření, přednášející Jan Fischer. Materiál je určen jako pomocný materiál pouze pro studenty

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Assembler - 5.část. poslední změna této stránky: Zpět

Úvod do programovacích jazyků (Java)

Algoritmizace a programování

velikosti vnitřních pamětí? Jaké periferní obvody má na čipu a k čemu slouží? Jaká je minimální sestava mikropočítače z řady 51 pro vestavnou aplikaci

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

od jaké adresy bude program umístěn? Intel Hex soubor, co to je, z čeho a jak se získá, k čemu slouží? Pseudoinstrukce (direktivy) překladače ORG, SET

5 Přehled operátorů, příkazy, přetypování

Paměť počítače. alg2 1

Klimatizace. Třída: 4.C. Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT. Skupina: 3. Zpráva číslo: 3

Předmluva 13 Použité konvence 14. KAPITOLA 1 Základní číselné soustavy a pojmy Číselné soustavy a převody 15 1.


Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Programování v jazyce JavaScript

Jazyk C# a platforma.net

Popis vývojového prostředí. WinIDE51

8. Laboratoř: Aritmetika a řídicí struktury programu

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Proměnné a parametry. predn_08.odt :00:38 1

ISU Cvičení 3. Marta Čudová

Úvod do programování. Lekce 1

VÝRAZY výrazy = operandy prokládané operátory, vyhodnocované podle priority operátorů

Zápis programu v jazyce C#

Registry 32 bitové pro všeobecné použití: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP.

Programovací jazyk Pascal

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

Strojový kód. Instrukce počítače

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

a operačních systémů

Úvod. Instrukce musí obsahovat: typ operace adresu operandu (operandů) typ operandů modifikátory adresy modifikátory operace POT POT

Programátorský model procesoru x51

Mikroprocesorová technika (BMPT)

LEKCE 6. Operátory. V této lekci najdete:

Programovací jazyk C++ Hodina 1

Výrazy, operace, příkazy

Object Pascal je přísně typový procedurální jazyk, který umožňuje jak strukturované, tak objektově orientované programování.

MQL4 COURSE. By Coders guru -4 Operace & Výrazy

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

Kubatova Y36SAP 8. Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR Kubátová Y36SAP-strojový kód 1

Opakování programování

22. TVORBA UŽIVATELSKÝCH INSTRUKCÍ A MAKER

Struktura a architektura počítačů (BI-SAP) 7

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Digitální teploměr s LCD

NPRG030 Programování I, 2010/11

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051

NPRG030 Programování I, 2016/17 1 / :58:13

Jazyk symbolických adres

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

x86 assembler and inline assembler in GCC

Informatika Datové formáty

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG )

Fz =a z + a z +...+a z +a z =

Programování v jazyce JavaScript

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

Vzorec. Operátory v Excelu. Operátor přiřazení

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

Procesory z řady 8051

Java reprezentace dat, výrazy. A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické

Y36SAP - aritmetika. Osnova

24. Jazyk PLC836 - referenční slovník

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Datové typy strana 29

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz

Struktura a architektura počítačů (BI-SAP) 6

Racionální čísla, operátory, výrazy, knihovní funkce


Mikroprocesory v přístrojové technice

Racionální čísla, operátory, výrazy, knihovní funkce

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

PROGRAMÁTOR "WinProg-1" Návod k obsluze

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

Pohled do nitra mikroprocesoru Josef Horálek

Architektura počítačů Logické obvody

CZ.1.07/1.5.00/

Mikrořadiče pro přístrojovou techniku

Architektura počítačů Logické obvody

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

PŘETĚŽOVÁNÍ OPERÁTORŮ

Transkript:

Demonstrač nítext k předná š ce Mikroprocesory v přístrojové technice, kat. měření. A51 MACRO ASSEMBLER POKUSNY PROGRAM DATE 10/3/007 PAGE 1 MS-DOS MACRO ASSEMBLER A51 V4.4 OBJECT MODULE PLACED IN DEMC.OBJ ASSEMBLER INVOKED BY: A51 DEMC.A51 LOC OBJ LINE SOURCE 1 ;Test. program pro syntaxi prikazu prekladace A51 firmy KEIL 2 $ debug ; $ DB $NODB implicitne NODEBUG 3 $ DATE (10/3/00) 4 $ OBJECT ; implicitne prekladany soubor s prip. OBJ 5 ;$ OBJECT (C:\DEMC.OBJ),nebo jiny jinak $ NOOBJECT 6 $ ERRORPRINT (DEMC.ERR) ; zkracene EP, 7 $ PAGELENGTH (132) ; delka stranky implicitne 68, 8 ; zkracene $ PL (75) 9 ;$ EJECT ale se hada s PAGEWIDTH, PAGELENGTH 10 $ PAGEWIDTH (120) ; impicitne je 120 znaku 11 $ XREF ; crossreference, zkracene XR,NOXR 12 ; implicitne NOXREF!! 13 $ TITLE (POKUSNY PROGRAM) 14 ; zkracene $ TT (POKUSNY PROGRAM) 15 ; implicitne pouziva TITLE s nazvem zdroj. souboru 16 $ MOD51 ; je implicitne, 17 ;$ NOMOD51 ; zakaze preddefinovane symboly 8051 18 ; a pomoci 19 ;$INCLUDE (REG552.INC) ;se vlozi soubor s definici 20 ; symbolu pro jine klony, napr. Philips 80C552,... 21 ; ZKUSIT v predchozich radcich $MOD51..zmenit 22 ;$ INCLUDE (knih.lib) 23 ; stredniky, aby prekladalo pro 80552 24 ; 25 $ COND ; povoli tisk i casti mezi IF -ELSEIF ENDIF 26 ; ktere nebyly prekladany, $ NOCOND zakaze... 27 ; implicitne je $ COND 28 $ MACRO ; implicitne, povoli zpracovani definici 29 ; opak $ NOMACRO; 30 31 ;CISELNE VYRAZY 32 ;HEX H, h 1234h, 99H, 0A0F0H, 0FFH 33 ;DEC D, d, 1234, 65590D, 20d, 123 34 ;OKTAL. 177O, 7777o, 25O, 123o, 177777O 35 ;BIN B, b 111B, 10011B 36 ;1111$0000$1010$0011B ZNAK $ PRO 37 ;SNAZSI ORIENTACI 38 ; 39 40 ;STRING - RETEZCE 0041 41 sym set A 4142 42 sym set AB 0061 43 sym set a 6162 44 sym set ab

45 ; sym set abc to je CHYBNE 0000 7641 46 TEST: MOV @R0, # A 0002 9430 47 SUBB A, # 0 0004 908000 48 MOV DPTR, #8000h A000 49 EX_RAM EQU 0A000h 0007 90A000 50 MOV DPTR, #EX_RAM 000A 454E5445 51 TABLE: DB ENTER ANY KEY TO CONT, 0 000E 5220414E 0012 59204B45 0016 5920544F 001A 20434F4E 001E 5400 52 53 ; SYMBOLY 54 ; max. 31 ZNAKU DLOUHE 55 ; ZACINA ZNAKEM A az Z, nebo? 56 ; TYPY CODE, DATA, BIT TYPELESS 0099 57 SERIAL_BUFFER DATA SBUF 0020 F599 58 MOV SERIAL_BUFFER, A 59 60 ; NAVESTI 61 ; LABEL1: DS 2 62 ; LABEL2: ; komentar 0022 1B215354 63 NUMBERA: DB 27, 33, STRING,0 0026 52494E47 002A 00 002B E0 64 COPY: MOVX A, @DPTR 65 66 ; REZERVOVANE SYMBOLY 67 ; A, R0 az R7 68 ; DPTR, PC, C, AB, AR0 az AR7 69 ; SYMBOL $ CITAC ADRES v SEGMENTU 70 ; oddelene SEGMENT CODE,DATA, IDATA,BIT, XDATA 71 CSEG 0064 72 ORG 100 ;pomoci ORG se nastavuje $ 73 0064 80FE 74 HALT: SJMP $ 0066 00660068 75 TABLEA: DW $, $, $ 006A 006A 76 77 ; OPERATORY 78 ; ARITMETICKE 79 ; +,- ZNAMENKO +5, FFFF 80 sym set -1 FFFE 81 sym set NOT 1 FFFE 82 sym set NOT 0000$0000$0000$0001B FFFF 83 sym set NOT 1 + 1 FFFF 84 sym set (NOT 1) +1 FFF6 85 SYM SET -0AH 86 ; +,- 2+10-2 scitani, odecitani 87 ; * 1200H*7 NASOBENI 88 ; / deleni 0004 89 SYM SET 17/4 ; CELOCISELNE DELENI 0001 90 sym set 17 MOD 4 ; ZBYTEK PO DELENI 91 ; (,) 0078 92 sym set (2+8)*12 ; ZMENA PORADI VYKONU OPERACI 93 ;

94 ; BINARNI OPERACE 95 ; NOT FFFA 96 sym set NOT 5 ; NEGACE JEDNICKOVY DOPLNEK 97 04D2 98 sym set 1234 0004 99 sym set HIGH 1234; VYSSI BYTE 00D2 100 sym set LOW 1234; NIZSI BYTE 101 ; SHR, SHL POSUN DOPRAVA, DOLEVA 0020 102 sym set 2 SHL 4 0012 103 sym set 0FFH AND 12H; LOGICKA AND OERACE 00B3 104 sym set 12H OR 177 0003 105 sym set 12 XOR 15 106 107 ; RELACNI OPERATORY 108 ; >= / GTE GREATER THAN OR EQUAL TO 109 ; <= / LTE LESS THAN OR EQUAL TO 110 ; <> / NE NOT EQUAL 111 ; = / EQ EQUAL 112 ; < / LT LESS THAN 113 ; > / GT GREATER THAN 114 ; OPERATORY GTE, LTE, NE, EQ, LT, GT 115 ;... JE NUTNO ODDELIT MEZEROU OD OPERANDU 116 ; OPERATORY <>= NENI NUTNO ODDELOVAT MEZEROU 117 ; 118 ; 119 ; PRIORITA OPERATORU 120 ; 1. ( ZAVORKY ) 121 ; 2. NOT, HIGH, LOW 122 ; 3. =, - JAKO ZNAMENKO 123 ; 4. *, /, MOD, ^ 124 ; 5. +, - SCITANI, ODECITANI 125 ; 6. SHR, SHL 126 ; AND, OR, XOR 127 ; >=, <=, =, <, > 128 ; 129 ; NUMERICKE VYRAZY - TYP SEGMENTU 130 ; v tabulce XREF uvedent TYP SYMBOLU 131 ; NUMBER - (CISLO) NEZAVISI NA SEGMENTU 132 ; CSYM ADRESOVY SYMBOL (SEG.) KODOVY 133 ; DSYM ADRESOV SYMBOL DATOVY - INTERNI PAM. 134 ; ISYM IDATA SYMBOL (INTERNI DAT. PAMET) 135 ; XSYM ADRESOVY SYMBOL DATOVY (EXT. PAMET) 136 ; BSYM BITOVY SYMBOL 137 ; 138 ; 1) VYSLEDK UNARNI OPERACE (+,- jako znamenko 139 ; NOT, LOW, HIGH) MAJI STEJNY TYP SEGMENTU JAKO 140 ; OPERAND 141 ; 2) VYSLEDEK VSECH BINARNICH OPERACI 142 ; (MIMO + A -) NEMA SEGMENTOVY TYP 143 ; 3) PRO BINARNI OPERACE + A - POKUD 144 ; MA POUZE!!! JEDEN SEG. TYP PAK MA STJNY TYP 145 ; VYSLEDEK. V OST. PRIPADECH VYSLEDEK NEMA TYP. 146 ; 147 ; OPERACE SE SYMBOLY RUZNYCH TYPU 148 ; CSYM + (DSYM-DSYM) = TYP CODE 149 ; DSYM - DSYM = CISLO (BEZ TYPU) 150 ; CISLO + CISLO = CISLO ( BEZ TYPU)

151 ; CSYM + CISLO = TYP CODE 006C 08484C41 152 MSG: DB LEN, HLASENI,0 0070 53454E49 0074 00 0008 153 LEN EQU $-MSG-1 154 ; 155 156 ; DIREKTIVY ASSEMBLERU, DEFINICE SYMBOLU 157 ; SEGMENT 158 ; EQU 159 ; SET 160 ; DATA 161 ; IDATA 162 ; XDATA 163 ; BIT 164 ; CODE 165 166 ; REZERVACE PAMETI, INICIALIZACE 167 ; DS rezervace v RAM (DATA, XDATA) 168 ; DB VYRAZ [VYRAZ,...] BYTE v pameti CODE 169 CSEG 0075 000141D2 170 DB 0,1, A, LOW (1234D) 171 ; DW VYRAZ [,VYRAZ,..] SLOVA v pameti CODE 172 ; DBIT 173 ; LINKOVANI PROGRAMU 174 ; PUBLIC 175 ; EXTERN 176 ; NAME 177 ; 178 ; RIZENI PREKLADACE VYBER, SEGMENTU 179 ; ORG 180 ; END 181 ; RSEG 182 ; CSEG 183 ; DSEG 184 ; XSEG 185 ; ISEG 186 ; BSEG 187 ; USING 188 0079 00 189 NOP 007A 00 190 NOP 0010 191 MEZERA EQU 16 008B 192 ORG $ +MEZERA 008B 00 193 NOP 194 XSEG AT 8000H 0008 195 PAKET EQU 8 8000 196 VYSL1: DS 4 8004 197 VYSL2: DS PAKET 800C 198 VYSL3: DS 4 199 200 ; 201 BSEG AT 70H 0070 202 AD_MODE: DBIT 1 0071 203 DA_MODE: DBIT 1 204 205 ; PODMINENY PREKLAD

206 CSEG 207 ; TYP_PROC 0-2051, 1-8051, 2-8052 208 $ SET (TYP_PROC = 0); 0 nebo 1, nebo 2 209 $ IF (TYP_PROC = 0) 07FF 210 FLASH SET 7FFH ; 211 $ ELSEIF (TYP_PROC = 1), KONSTUKCE S ; ELSEIF mozna POUZE s $ FLASH SET 0FFFH $ ELSEIF (TYP_PROC = 2) FLASH SET 1FFFH $ ENDIF 217 ; CELY PROGRAM... 07FE 218 ORG 7FEH 07FE E599 219 MOV A, SBUF 0800 00 220 NOP 0801 22 221 POSL_INSTRUKCE: RET 0802 222 KONEC SET $ 223 IF FLASH >= KONEC VESLO_SE SET 1 ELSE 0000 226 VESLO_SE SET 0 227 ENDIF 228 229 $IF (TYP_PROC = 0) 0060 230 STACK SET 60H 0000 231 ORG 0 232 $ENDIF 233 234 $IF (TYP_PROC = 1) STACK SET 60H ORG 0A100H $ENDIF 238 239 $IF (TYP_PROC = 2) STACK SET 80 ORG 0A100H $ENDIF 243 0000 00 244 ZAC: NOP 0001 00 245 NOP 0002 758160 246 MOV SP,# STACK 247 DSEG AT STACK 248 249 END; konec prekladu

XREF SYMBOL TABLE LISTING ---- ------ ----- ------- N A M E T Y P E V A L U E ATTRIBUTES / REFERENCES AD_MODE.... B ADDR 002EH.0 A 202# COPY..... C ADDR 002BH A 64# DA_MODE.... B ADDR 002EH.1 A 203# EX_RAM.... N NUMB A000H A 49# 50 FLASH..... N NUMB 07FFH A 210# 223 HALT..... C ADDR 0064H A 74# KONEC..... C ADDR 0802H A 222# 223 LEN...... N NUMB 0008H A 152 153# MEZERA... N NUMB 0010H A 191# 192 MSG...... C ADDR 006CH A 152# 153 NUMBERA.... C ADDR 0022H A 63# PAKET..... N NUMB 0008H A 195# 197 POSL_INSTRUKCE C ADDR 0801H A 221# SBUF..... D ADDR 0099H A 57 219 SERIAL_BUFFER. D ADDR 0099H A 57# 58 SP...... D ADDR 0081H A 246 STACK..... N NUMB 0060H A 230# 246 247 SYM...... N NUMB 0003H A 41# 42# 43# 44# 80# 81# 82# 83# 84# 85# 89# 90# 92# 96# 98# 99# 100# 102# 103# 104# 105# TABLE..... C ADDR 000AH A 51# TABLEA.... C ADDR 0066H A 75# TEST..... C ADDR 0000H A 46# VESLO_SE... N NUMB 0000H A 226# VYSL1..... X ADDR 8000H A 196# VYSL2..... X ADDR 8004H A 197# VYSL3..... X ADDR 800CH A 198# ZAC...... C ADDR 0000H A 244# REGISTER BANK(S) USED: 0 ASSEMBLY COMPLETE, NO ERRORS FOUND