• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    LITTLELIAssembler
    SHALDAN
    SHALDAN --- ---
    _BENNY: no to seš teda fakt dobrák .. místo aby jsi nám začínajícím pomohl, někam je odkazuješ :)). Ale je fakt, že pro začátek lepší odkaz než na Iczeliona asi neexistuje :))
    _BENNY
    _BENNY --- ---
    SHALDAN: no vida, konecne mam kam odkazovat ruzne otravne lidi... :D
    SHALDAN
    SHALDAN --- ---
    především pro začátečníky (protože profíci by mě moc kritizovali :)) jsem si dovolil začít překládat slavné Iczelionovy tutorialy o assembleru ve Windows.
    První tři si můžete přečíst na: http://www.shaldan.xf.cz/
    Připomínky vítám, ale nečekejte bleskové opravy .. beru to spíše jako cvičení v angličtině a assembleru (jsem také začátečník, ale mohu to vřele doporučit, podrobným zkoumáním textu za účelem překladu jsem mnohé pochopil mnohem lépe), které by mohlo někomu kdo začíná přinést nějaký užitek.
    SHALDAN
    SHALDAN --- ---
    KYOSUKE: kurna to vypadá dobře, díky za tip ... lepší než se pořád ptát na masm forech :))
    Ale knihy Randalla Hyda jsou skvělý a zadarmo:
    http://webster.cs.ucr.edu/ .... ale to už asi všichni znáte ... :))
    KYOSUKE
    KYOSUKE --- ---
    Našel jsem docela hezkou věc, aspoň teda myslím: :-)

    http://www.agner.org/assem/
    LITTLELI
    LITTLELI --- ---
    je to asi zname, ale precejen neco na doplneni nastenky
    http://www.tortall.net/projects/yasm/
    VIRUS31
    VIRUS31 --- ---
    vzdavam se :) ta kompatibilita mi necvakla :)
    KYOSUKE
    KYOSUKE --- ---
    VIRUS31: "Pokud CWD pracuje s 16bity proc ji nepozmenili tak aby byla schopna pracovat s 32bity"

    ...a k tomu ještě mohli pozměnit kvůlivá 386ce (na konci 80. let) všechny existující DOSovské programy (všichni měli 88ky a 286ky), dyť by to bylo levnější, že jo? ;-)
    _BENNY
    _BENNY --- ---
    a tos jeste neslysel o instrukci CDQ, to je teprve narez ;)
    LITTLELI
    LITTLELI --- ---
    protoze by tabulka instrukci byla dneska desetirozmerna a ne jenom sestirozmerna ;]
    _BENNY
    _BENNY --- ---
    ze by kompatibilita?
    VIRUS31
    VIRUS31 --- ---
    jestli dobre rozumim EAX je 32bitovy. Pokud CWD pracuje s 16bity proc ji nepozmenili tak aby byla schopna pracovat s 32bity a nebylo tak nutne zavadeni dalsi instrukce CWDE (a dalsich).
    podle toho jak ji chapu mi na ty 386ce prijde CWD duplicitni k CWDE. Kdyztak zastavte moji nevedomost, fakt toho zas moc nevim :)
    KYOSUKE
    KYOSUKE --- ---
    VIRUS31: Protože v 16 bitech žádných "horních 16 bitů EAX" nebylo?
    VIRUS31
    VIRUS31 --- ---
    dekuji. a mozna hloupy dotaz tykajici se 386: proc se roztahovat pri rozsirovani do dalsiho registru (DX), kdyz muzu vyuzit hornich 16bitu EAX?
    jsem na 40-te strance tak prosim nekamenovat ^_^
    LITTLELI
    LITTLELI --- ---
    no je to Convert Word to Doubleword.

    dokumentace netwide assembleru rika:

    B.4.19 CBW, CWD, CDQ, CWDE: Sign Extensions
    CBW                           ; o16 98               [8086] 
    CWDE                          ; o32 98               [386]
    
    CWD                           ; o16 99               [8086] 
    CDQ                           ; o32 99               [386]
    
    All these instructions sign-extend a short value into a longer one, by replicating the top bit of the original value to fill the extended one. CBW extends AL into AX by repeating the top bit of AL in every bit of AH. CWDE extends AX into EAX. CWD extends AX into DX:AX by repeating the top bit of AX throughout DX, and CDQ extends EAX into EDX:EAX. pokud chces expandovat maly registr na 32bitovy tak muzes pouzit: movzx pro beznamenkove rozsireni nebo movsx pro znamenkove podle predpisu:
    MOVSX reg16,r/m8              ; o16 0F BE /r         [386] 
    MOVSX reg32,r/m8              ; o32 0F BE /r         [386] 
    MOVSX reg32,r/m16             ; o32 0F BF /r         [386]
    
    MOVZX reg16,r/m8              ; o16 0F B6 /r         [386] 
    MOVZX reg32,r/m8              ; o32 0F B6 /r         [386] 
    MOVZX reg32,r/m16             ; o32 0F B7 /r         [386]
    

    KYOSUKE
    KYOSUKE --- ---
    VIRUS31: Dělá pořád totéž.
    VIRUS31
    VIRUS31 --- ---
    Tak jsem se pustil do cteni PC Assembly Language (Paul A. Carter) a neni mi jasna prvni vec :)
    Co udela instrukce CWD na 'novejsim' stroji? V knize pisou, ze na strojich, ktery jeste nemely 32bitovy registr se AX rozsirilo na DX:AX. Od 80386 je 32bitovy registr, cili CWD bude stale provadet AX -> DX:AX nebo rovnou AX -> EAX?
    Poznamenam, ze se tam zminuji o instrukci CWDE, ktera se prvne objevila u 386tek a provadi prave AX->EAX. Chtel bych znat odpoved na podtrzene :)
    dekuji
    KYOSUKE
    KYOSUKE --- ---
    MIKI001: Holt za protectorátu je to s informacema bídný... :-D
    MIKI001
    MIKI001 --- ---
    LITTLELI: Dekuju za takovyhle vysvetleni .. a jenom koukam co jsem za dob pred protected rezimem ani nezaslechl :)
    Kliknutím sem můžete změnit nastavení reklam