Aktív témák
-
Rover623
félisten
válasz
Blackmate
#10
üzenetére
Több gond is van...egy bő évtizede nem kódoltam C-ben, ezt az assembly-t meg pláne nem ismerem...
De mondjuk Pascal-ban be tudom mutatni.
Var
STACK : Array [....] of Byte; {hogy legyen mire hivatkozni, de lehet hogy nem is kell}
IN2BUF: Array [....] of Byte; {mit tudom én mekkora?}
IN2CS : Byte Absolute x:x;
OUT2CS : Byte Absolute x:x;
IN2BC,
OUT2BC,
SP,
DPTR,
R1,
R2,
R7,
A : Byte; {feltételezem 8 bites controller}
Begin
Start: {nem kell, de jól mutat...}
{a stack kezelést nem boncolgatnám, hosszú...}
DPTR := 0;
R7 := $64;
Fill:
A := R7; {szvsz felesleges, mert ez az akkumulátor}
IN2BUF[DPTR] := A; {közvetlenül mehetne bele az R7}
Inc(DPTR);
If (R7 <> 0) Then Goto Fill; {jujj de csúnya...}
R1 := 0;
R2 := 0;
A := $40;
IN2BC := A;
Loop:
A := IN2CS; {ez valami kitüntettett memóriacímen lévő beágyazott IO-nak tűnik}
{na itt már gond van, az ACC valami bitszintű compare utasításnak tűnik...}
If (A and 1) = 0 Then Goto serviceIN2;
A := OUT2CS;
If (A and 1) = 1 Then Goto Loop;
ServiceOUT2:
Inc(R2);
OUT2BC := A; {nem egy elegáns megoldás, A határozatlan?}
Goto Loop;{? csak találgatok sjmp-t illetően...}
ServiceIN2:
és így tovább....
End.
Tehát ismerni kellene a controller memóriakiosztását, a beágyazott IO regiszterek helyét, az assembly utasítások pontos jelentését...
C-ben a DPTR-en keresztüli címzést egészen jól le lehetne modellezni a ''kukacos'' pointerkezeléssel...
[Szerkesztve]
[Szerkesztve] -
Rover623
félisten
Szvsz egyszerű...
![;]](//cdn.rios.hu/dl/s/v1.gif)
Értelmezd a kódot és szépen írd meg C-ben...
Pl. minden regiszter egy változó lesz...
Értékadások, aritmetikai műveletek értelemszerűen...
Portműveletek szintén értelemszerűen...
Ha a ciklust felismered, egyszerűen meg lehet írni...
Másképp nem megy!!!
Gépesíteni ezt piszok nehéz...nem is nagyon láttam még ilyesmit...
Arra viszont számíts, hogy sokkal lassabb lesz mint az eredeti...
Erősen hardware közeli dolgokat meg (interrupt kezelés, DMA) igen nehezen és körültekintően lehet csak átültetni...
Aktív témák
- Xiaomi 17 Ultra - jó az optikája
- Bluetooth hangszórók
- Milyen légkondit a lakásba?
- Így ismerd fel AI nélkül az AI képeket!
- TCL LCD és LED TV-k
- Nagyrobogósok baráti topikja
- HiFi műszaki szemmel - sztereó hangrendszerek
- Programozás topic
- 5.1, 7.1 és gamer fejhallgatók
- Allegro vélemények - tapasztalatok
- További aktív témák...
- ZBook Fury G8, i7-11850H, 32GB, RTX A2000, HP Garancia, Gyönyörű, HUN
- Corsair iCUE ELITE CPU Cooler LCD Display Upgrade Kit
- Lenovo Thinkpad E595 Ryzen 5 pro 3500U, Radeon Vega 8, 8-16GB RAM, SSD, jó akku, számla, gar
- Bomba ár! HP Dragonfly G4 i7-13G I 32GB I 512SSD I 13,5" FHD+ Touch I Cam I W11 I Garancia!
- Bomba ár! HP Elite Dragonfly Max i7-11G I 32GB I 512SSD I 13,3" FHD Touch I Cam I W11 I Garancia!
- Apple iPhone 15 Pro 128GB,Újszerű,Dobozaval12 hónap garanciával
- 27% PNY GeForce RTX 5070 EPIC-X RGB OC 12GB GDDR7 192bit (VCG507012TFXXPB1-O) Videokártya
- REFURBISHED és ÚJ - HP USB-C Dock G5 (5TW10AA) - 3x4K felbontás
- GAMER PC! i7-10700F / RTX 3070 / B460-Plus / 16GB DDR4 / SSD 512GB / BeszámítOK!
- Telefon felváráslás!! Xiaomi 13T, Xiaomi 13T Pro, Xiaomi 14T, Xiaomi 14T Pro
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
![;]](http://cdn.rios.hu/dl/s/v1.gif)

