Pokaż wyniki 1 do 7 z 7

Temat: Rejestr DS

  1. Domyślnie Rejestr DS

    Cześć. Właśnie zaczynam "zabawę" z asemblerem, ale póki co mam niemałe problemy.
    Muszę wyświetlić na ekran w postaci szesnastkowej 16bitową zawartość rejestru DS. Nie wiem z której strony w ogóle się do tego zabrać, a czas mam ograniczony. Możecie doradzić lub (byłoby mile widziane ) wesprzeć kodem?

  2. #2
    Zarejestrowany
    Oct 2008
    Skąd
    W Sieci !!!
    Postów
    282

    Domyślnie

    Dopiero się zabierasz ale nie wiesz z której strony... Więc nie wiem jak mam Ci pomóc skoro nie wiem na jakim etapie jesteś... Podstawy znasz ? Czy zielony zupełnie wybrałeś się z motyką na księżyc ?

    Piszesz że musisz wyświetlić ekran w postaci 16 bitowej. A wyświetlasz w innej postaci nie w 16 bitach ? Mamy zgadywać czy co ?
    "Wszystkie komputery PC są kompatybilne, ale niektóre są kompatybilniejsze od innych... Twój jest zawsze mniej kompatybilny..."

  3. Domyślnie

    Znam podstawowe polecenia. Nie w postaci 16bitowej tylko w systemie szesnastkowym. Naucz się czytać, a potem zgrywaj mądralę.

  4. #4
    Zarejestrowany
    Oct 2008
    Skąd
    W Sieci !!!
    Postów
    282

    Domyślnie

    Literówka jeden xxuj jak dla mnie To nie ja mam problem tylko Ty więc moje czytanie nie ma tu nic do rzeczy.
    "Wszystkie komputery PC są kompatybilne, ale niektóre są kompatybilniejsze od innych... Twój jest zawsze mniej kompatybilny..."

  5. #5

    Domyślnie

    Masz szczęście, że znalazłem swoje stare source


    ;************************************************* *****************************
    ; Procedura przeksztalca 16 bit˘w na HEX slowo
    ; Cyfra znajduje sie pod adresem DS:SI+0 a konczy na DS:SI+3 + znak 'h' i '$'
    ;
    ; Przed wykonaniem:
    ;
    ; AX --> podac 16 bitowe slowo np: 0000 0000 1111 1010
    ;
    ; Pierwsza aktualizacja:
    ; 13.11.96
    ;
    ;
    ;
    ;
    ; bc. Artia
    ;************************************************* ****************************
    DSEG Segment
    Digits db '0123456789ABCDEF' ;Tabela dostepnych znak˘w
    DSEG Ends

    CSEG Segment
    Begin:
    assume CS:CSEG,DS: DSEG
    mov AX,DSEG
    mov DS,AX

    mov AX,1001100110011001b ; Slowo do zamiany
    call m16b_to_Hex ; Odpow. proc.

    lea DX,DS:[SI]
    call Writ
    call Endo

    ;************************************************* ****************************
    m16b_to_Hex PROC
    mov BX,offset Digits ; adres Digits np: pod BX
    mov DI,AX ; kopia AX
    and DI,0000000000001111b ; maska 12 starszych bit˘w
    mov DX,DI ; kopia do DX
    mov DL,[BX+DI] ; [offset Digits] + [liczba w DI]
    ; kopiowane do DL. W DL znajduje
    ; sie liczba z ciagu Digits
    mov DS:[SI+3],DL ; i zapis pod SI+3

    mov DI,AX ; dalej wszystko odbywa sie
    ; analogicznie. p.w
    shr DI,1
    shr DI,1 ;
    shr DI,1 ; Domysl sie po co to !
    shr DI,1
    and DI,0000000000001111b ; A ku,ku - znowu maska.
    mov DX,DI
    mov DL,[BX+DI]
    mov DS:[SI+2],DL

    mov DI,AX
    shr DI,1
    shr DI,1
    shr DI,1
    shr DI,1
    shr DI,1
    shr DI,1
    shr DI,1
    shr DI,1
    and DI,0000000000001111b
    mov DX,DI
    mov DL,[BX+DI]
    mov DS:[SI+1],DL

    mov DI,AX
    shr DI,1
    shr DI,1
    shr DI,1
    shr DI,1

    shr DI,1
    shr DI,1
    shr DI,1
    shr DI,1

    shr DI,1
    shr DI,1
    shr DI,1
    shr DI,1
    and DI,0000000000001111b
    mov DX,DI
    mov DL,[BX+DI]
    mov DS:[SI+0],DL

    xor DX,DX
    mov DX,'h'
    mov DS:[SI+4],DL
    mov DX,'$'
    mov DS:[SI+5],DL
    ret
    m16b_to_Hex ENDP

    Writ PROC
    mov AH,09h
    int 21h
    ret
    Writ ENDP

    Endo PROC
    mov AH,4Ch
    mov AL,0
    int 21h
    ret
    Endo ENDP
    ;************************************************* ****************************
    CSEG Ends
    End Begin

  6. #6
    Zarejestrowany
    Oct 2008
    Skąd
    W Sieci !!!
    Postów
    282

    Domyślnie

    Mogłeś połowę uciąć co by chłopak pogłówkował. A tak to się tylko rozleniwi i przyzwyczai do gotowców :P
    "Wszystkie komputery PC są kompatybilne, ale niektóre są kompatybilniejsze od innych... Twój jest zawsze mniej kompatybilny..."

  7. #7

    Domyślnie

    hehe - Mandr4ke dobrze mówi: 50zł jesteś mi krewny ^^
    Ostatnio edytowane przez Elitegroup : 03-08-2013 - 23:16

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj