Stránka 1 z 2

Cyklovač

Napsal: 12 led 2014, 14:46
od igor5
Mohol by mi prosím vás niekto skompilovať tento súbor.Alebo poradiť v čom ho kompilovať?

http://www.hw.cz/teorie-a-praxe/konstru ... acu-2.html

Napsal: 12 led 2014, 15:27
od nokijec
To už je přeložený.Je to výpis z překladače.Jediné řešení je pomocí Ctrl-C zkopírovat do texteditoru,ručně smazat dva pravé sloupce,uložit.Přeložit v ASM51 a výsledkem je hex soubor pro procesor.

Napsal: 12 led 2014, 15:36
od igor5
Dva pravé?
Prečo mazať komentár a polovicu inštrukcii?[/b]

Napsal: 12 led 2014, 15:40
od nokijec
Sorry levé.První sloupec je PC-programový čítač,druhý je výsledný přeložený hex kód o který ti jde.Taky by šlo přepsat nebo překopírovat jen ten.

Napsal: 12 led 2014, 17:21
od igor5
skušal som skopírovať aj inštrukcie aj kod a nejde mi ani jedno.

Napsal: 12 led 2014, 17:44
od procesor
:roll: Tak .hex nevizerá :)
Pomocou nejakého programčeka by sa to z toho výpisu dalo prepísať do formátu file.hex, sú na to pravidlá, krvopotne aj ručne.
Neviem prečo si niekde nestiahneš free asm-kompilátor pre ten procesor (tuším nejaká 51) a zdroják si upravíš v text-editore z toho listing-u ako ti to radil vyššie nokijec.

Napsal: 12 led 2014, 18:22
od procesor
Ascii (textovy) formát.... tých hex-formátov býva viac
začiatok ./ dĺžka /Adresa...../povel/...........data......./kontrolné
riadka ":"/dat8bit/dat 16bit/8 bit../.............nn x......./číslo 8bit
znal ":" ......nn...... aaaaa......co.......xx xx xx xx xx xx cc

http://en.wikipedia.org/wiki/Intel_HEX

Napsal: 12 led 2014, 18:33
od igor5
Nemam s programovaním vela skuseností tak ma ospravedlnte.
Skušal som to ešte takto v Keil uVision 4 C51 v 9.02, ale hlasi mi to 56 chýb.

Napsal: 12 led 2014, 19:23
od hakamusai
Mohlo by to vypadat nějak takhle:

Kód: Vybrat vše

:09000000787F7600D8FC020014A0
:0F00110002019E758902D2AFD2A9D28C75060C5E
:0F002000750703C2B1C2B2C2B375D0187581079C
:0E002F00E501B40105D2B202003BC2B2E50009
:10003D00B40305D2B302004FB40405D2B302004F8E
:10004D00C2B330B005C2B102005A0200F420B50BA4
:0E005D0075000775060675070380C420B70BF3
:0E006B0075000775061275070380B620B40BEA
:0E00790075000775062475070380A820800B0C
:0E008700750007750612750706809A20810B1A
:0E00950075000775061E750706808C20820B0D
:0E00A300750007750632750706012C20830BC9
:0E00B10075000775060475070C012C20840BE2
:0E00BF0075000775060875070C012C20850BCF
:0E00CD0075000775061075070C012C20860BB8
:0E00DB00750007750606750710012C20870BAF
:0E00E900750007750612750710012CB4000B88
:0E00F70020B05D750001750101012CB40122DD
:1001050020B012D2B1E502B414487500057502009D
:10011500750100012C850207750200750002C2B148
:0E012500012CB4021F20B00E850206750200E8
:10013300750100750006012CE502B47817750200FD
:0E014300750100020195B4031120B046E503DA
:0F015100B40005750006012CC2B1012CB40411D5
:0F01600020B032E503B40005750005012CD2B1C3
:10016F00012CB4050B20B01E850603750003012C6E
:0E017F00B4060B20B010850703750004012C98
:0E018D00B4070B750006012C75000002002C53
:10019B00020000C0E0C0D00504E504B4142105053D
:1001AB00750400E505B43217750500E501B40102CD
:0F01BB000502E500B403030201C8B404021503F2
:0501CA00D0D0D0E032AE
:00000001FF


Nejsem si jistej s převodem následujícího:
& nbsp; ORG 0000H ->jsem přepsal na org 0h
& nbsp; ORG 000BH ->jsem přepsal na org 11h
&nbs p; ;KONEC PRERUSENI -> end ???
& nbsp; END -> end ???

Napsal: 12 led 2014, 19:54
od procesor
0x000B je iba 11 (nie 11h)

Napsal: 12 led 2014, 19:55
od nokijec
Poznámečka.V zapojení je atmel 2051.V programu je použit port P0 ten ta atmelka nemá.Asi přepsat na P1.
V programu je použita instrukce JMP.Ta je jednobajtová.Přepsat na LJMP.

Napsal: 12 led 2014, 20:11
od hakamusai
Změnil jsem 11h a PO na P1 ,jinak je vše podle původního.
Kompilátor píše : Warning at 9 in test.asm: Using `DS' directive, but currently active segment is `CSEG'
Co s tím ?
Vidím ,že to nebude sranda dát to dohromady.Možná by stálo za to napsat autorovi cyklovače.On ani neuvádí v čem je to psaný.Ty různý překladače mají odlišnou syntaxi.

Kód: Vybrat vše

:09000000787F7600D8FC02000EA6
:0F000B00020198758902D2AFD2A9D28C75060C6A
:0F001A00750703C2B1C2B2C2B375D018758107A2
:0E002900E501B40105D2B2020035C2B2E50015
:10003700B40305D2B3020049B40405D2B3020049A0
:10004700C2B330B005C2B10200540200EE20B50BB6
:0E00570075000775060675070380C420B70BF9
:0E00650075000775061275070380B620B40BF0
:0E00730075000775062475070380A820900B02
:0E008100750007750612750706809A20910B10
:0E008F0075000775061E750706808C20920B03
:0E009D00750007750632750706012620930BC5
:0E00AB0075000775060475070C012620940BDE
:0E00B90075000775060875070C012620950BCB
:0E00C70075000775061075070C012620960BB4
:0E00D500750007750606750710012620970BAB
:0E00E3007500077506127507100126B4000B94
:0E00F10020B05D7500017501010126B40122E9
:1000FF0020B012D2B1E502B41448750005750200A4
:10010F007501000126850207750200750002C2B154
:0E011F000126B4021F20B00E850206750200F4
:10012D007501007500060126E502B4781775020009
:0E013D0075010002018FB4031120B046E503E6
:0F014B00B400057500060126C2B10126B40411E7
:0F015A0020B032E503B400057500050126D2B1CF
:100169000126B4050B20B01E850603750003012680
:0E017900B4060B20B0108507037500040126A4
:0E018700B4070B750006012675000002002665
:10019500020000C0E0C0D00504E504B41421050543
:1001A500750400E505B43217750500E501B40102D3
:0F01B5000502E500B403030201C2B404021503FE
:0501C400D0D0D0E032B4
:00000001FF

Napsal: 12 led 2014, 20:33
od nokijec
Na začátek napiš DSEG.Mě ten překlad chodí bez chybových hlášení.Dokonce jsem se dopracoval na stejnou délku.

Napsal: 12 led 2014, 20:40
od hakamusai
Jo ,tak už to chodí.
Máme ten kód každej jinak.Dej pak info jestli ten tvůj funguje.

Kód: Vybrat vše

:0F000000787F7600D8FC02000C02019675890209
:10000F00D2AFD2A9D28C75060C750703C2B1C2B29A
:0F001F00C2B375D018758107E501B40105D2B2DF
:0F002E00020033C2B2E500B40305D2B3020047AB
:0F003D00B40405D2B3020047C2B330B005C2B15C
:0F004C000200520200EC20B50B75000775060686
:0E005B0075070380C420B70B750007750612E9
:0E00690075070380B620B40B750007750624DA
:0E00770075070380A820900B75000775061210
:0E008500750706809A20910B75000775061E00
:0E009300750706808C20920B750007750632EB
:0E00A100750706012420930B750007750604F1
:0E00AF0075070C012420940B750007750608D8
:0E00BD0075070C012420950B750007750610C1
:0E00CB0075070C012420960B750007750606BC
:0E00D900750710012420970B7500077506129D
:0E00E7007507100124B4000B20B05D750001F8
:0F00F5007501010124B4012220B012D2B1E5023D
:0E010400B41448750005750200750100012451
:10011200850207750200750002C2B10124B4021FF4
:0F01220020B00E850206750200750100750006FB
:100131000124E502B4781775020075010002018DF2
:10014100B4031120B046E503B4000575000601248F
:0F015100C2B10124B4041120B032E503B400059B
:0F0160007500050124D2B10124B4050B20B01E97
:0E016F008506037500030124B4060B20B010B2
:10017D008507037500040124B4070B7500060124DF
:0F018D00750000020024020000C0E0C0D005048D
:0F019C00E504B414210505750400E505B4321718
:0F01AB00750500E501B401020502E500B4030388
:0D01BA000201C0B404021503D0D0D0E03221
:00000001FF

Napsal: 12 led 2014, 20:53
od nokijec
Já ten hex mám jiný.V mém překladači jsem musel přepsat všechny skoky
JMP na LJMP.Překládalo se to jako relativní skok a ne jako 16-ti bitový.