Chirurgia endoscopică a hipofizei
"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală. Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale. www.neurohope.ro |
Assembly - Motorola 68K
Last Updated: Oct 31 2014 16:38, Started by
DarkAngelBv
, Oct 21 2014 19:39
·
0
#1
Posted 21 October 2014 - 19:39
Salutare dragi forumisti.
Ironia face ca de ce imi era frica sa nu scap. Intr-un proiect personal am nevoie sa modific direct codul assembly pentru a extinde functionalitatea. Respectivul proiect este conturat in jurul unui procesor 68K si un flash de 256K Cred ca am gasit entry point-ul din procesor spre codul din flash, dar acum trebuie sa mai si inteleg codul. Confirmati daca ce am presupus ca face fiecare operator este adevarat sau nu ROM:00001F68 ROM:00001F68 sub_1F68: ; CODE XREF: sub_1FC4+10p ROM:00001F68 ; sub_1FDC+9Cp ... ROM:00001F68 ROM:00001F68 arg_3 = 7 ROM:00001F68 ROM:00001F68 move.l d7,-(sp) ; copiere D7 in SP ROM:00001F6A move.b 4+arg_3(sp),d7 ; copiaza ultimul byte (valoare din SP, nu adresa) din stanga cu offset de 11 bytes in registrul D7 ROM:00001F6E movea.l #$FF802A,a0 ; seteaza registrul A0 cu adresa $ff802A ROM:00001F74 moveq #$FFFFFFC0,d1 ; Seteaza registrul D1 cu ultimul byte din stanga (x0C0) ROM:00001F76 and.b (a0),d1 ; operatie AND intre valoarea din A0 si D1 (D1 = A0 & D1) ROM:00001F78 move.b d1,(a0) ; Mutam un byte din D1 in A0 ROM:00001F7A moveq #$3F,d0 ; seteaza registrul D0 cu byte-ul $3f ROM:00001F7C and.b d7,d0 ; operatie and intre D7 si D0 stocat in D0 ROM:00001F7E cmp.b d0,d7 ; comparam un byte din D0 cu D7 si setam codul de conditie specific ROM:00001F80 bne.s loc_1F88 ; Daca D0 != D7 mergem la loc_1F88 ROM:00001F82 move.b d7,d0 ; Daca D0 == D7 mutam byte-ul din registrul D7 in D0 ROM:00001F84 or.b d1,d0 ; se aduna D1 la D0 -> rezultat in D0 ROM:00001F86 move.b d0,(a0) ; se muta byte-ul din D0 in A0 ROM:00001F88 ROM:00001F88 loc_1F88: ; CODE XREF: sub_1F68+18j ROM:00001F88 move.b d7,($FF802D).l ; se muta byte-ul din D7 in long-ul din adresa FF802D ROM:00001F8E tst.b (a0) ; se compara A0 cu 0 ROM:00001F90 bpl.s loc_1F9C ; daca A0 nu este 0 executam loc_1F9C ROM:00001F92 move.b ($FF815A).l,($FF8159).l ; daca A0 este 0 executam bucata asta de cod ROM:00001F9C Acum si cateva intrebari. Ce face -(sp) ? dar (sp)? Stiu ca daca era [sp] era valoarea de la adresa stocata in registrul sp ce inseamna #$11? locatia 0x11 sau offset de 0x11 de la locatia actuala? Multumesc anticipat. |
#2
Posted 21 October 2014 - 20:01
Nu cunosc sintaxa, dar prin analogie, mai mult ca sigur e:
DarkAngelBv, on 21 octombrie 2014 - 19:39, said:
Ce face -(sp) ? La (sp) e ceea ce zici. Quote
Stiu ca daca era [sp] era valoarea de la adresa stocata in registrul sp Quote
ce inseamna #$11? locatia 0x11 sau offset de 0x11 de la locatia actuala? Hashul mai mult ca sigur indica ca e valoare imediata si nu registru. |
#3
Posted 22 October 2014 - 06:46
@DarkAngelBv: Google Motorola 68000 assembly manual si primul rezultat este ‘MOTOROLA M68000 FAMILY Programmer's Reference Manual’ in format PDF. E acolo tot ce ai putea avea nevoie.
|
#4
Posted 31 October 2014 - 16:38
Deja l-am citit si nu am gasit raspunsuri la anumite intrebari, procesorul asta fiind unul ceva mai special (folosit in industria auto)
|
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users