logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ASM] Podanie informacji do poszczególnych linijek [POMOC]

bravura 03 Lis 2009 18:06 1073 2
  • #1 7210861
    bravura
    Poziom 1  
    Posty: 1
    Witam.

    Jestem Świeżak i nowy na forum ale mam problem. Chodzi mi o to by ktoś z grona fachowców podał mi wytłumaczenie każdej z linijek tutaj podanej. Dokładny opis i do czego służy. Jeżeli ktoś się zgłosi to prosiłbym o linka najlepiej do wszystkich funkcji z opisem (najlepiej po polsku). Kilka już potłumaczyłem. Prosiłbym o więcej.

    Z góry dziękuje za pomoc i pozdrawiam:)

    .model small
    .stack 100h
    .386 ;aby mozna bylo stosowac przesuniecia o kilka pozycji
    
    .data
    info db "Zabawa z diodami klawiatury (obserwuj diody CapsLock i NumLock)",0ah,0dh,'$'
    info1 db "Wybierz liczbe powtorzen w petli od 1 do 9",0ah,0dh,'$'
    info3 db "Podaj liczbe z zakresu od 1 do 9",0ah,0dh,'$'
    info4 db "Czy sprawdzac 'CapsLock' t/n (male litery) ?",0ah,0dh,'$'
    liczba dw ?
    czas db ?
    cap db ?
    
    .code
    glowna proc
    mov ax,@data
    mov ds,ax
    
    mov ah,0
    mov al,3
    int 10h
    
    mov ah,9
    mov dx,offset info
    int 21h
    
    mov ah,9
    mov dx,offset info1
    int 21h
    
    poczatek:
    mov ah,8
    int 21h
    cmp al,'1'
    je liczba1
    cmp al,'2'
    je liczba2
    cmp al,'3'
    je liczba3
    cmp al,'4'
    je liczba4
    cmp al,'5'
    je liczba5
    cmp al,'6'
    je liczba6
    cmp al,'7'
    je liczba7
    cmp al,'8'
    je liczba8
    cmp al,'9'
    je liczba9
    
    mov ah,0
    mov al,3
    int 10h
    
    mov ah,9
    mov dx,offset info3
    int 21h
    jmp poczatek
    
    liczba1:
    mov liczba,1
    jmp koniec
    liczba2:
    mov liczba,2
    jmp koniec
    liczba3:
    mov liczba,3
    jmp koniec
    liczba4:
    mov liczba,4
    jmp koniec
    liczba5:
    mov liczba,5
    jmp koniec
    liczba6:
    mov liczba,6
    jmp koniec
    liczba7:
    mov liczba,7
    jmp koniec
    liczba8:
    mov liczba,8
    jmp koniec
    liczba9:
    mov liczba,9
    koniec:
    
    zzz:
    mov ah,9
    mov dx,offset info4
    int 21h
    
    mov ah,8
    int 21h ;czytanie znaku bez echa
    
    cmp al,'t'
    je qqq
    cmp al,'n'
    je aaa4
    jmp zzz
    
    qqq:
    mov cap,1
    jmp xxx
    aaa4:
    mov cap,0
    xxx:
    
    mov cx,liczba
    petla:
    pusha
    call delay
    mov ah,0Bh
    int 21h ;koniecznie dac jakies przerwanie odwolujace sie do bufora klawiatury
    popa
    
    call swiec2 ;swiecenie dla NumLock
    
    cmp cap,1
    je sss
    jmp www
    sss:
    
    mov ah,0Bh
    int 21h
    call swiec3 ;swiecenie dla CapsLock
    
    www:
    loop petla
    
    mov ax,4c00h
    int 21h
    glowna endp
    
    swiec1 proc ;swiecenie dla ScrollLock
    push ds
    mov ax,40h
    mov ds,ax
    mov bx,17h
    xor byte ptr [bx],000100000b
    pop ds
    int 15h
    ret
    swiec1 endp
    
    swiec2 proc
    push ds
    mov ax,40h
    mov ds,ax
    mov bx,17h
    xor byte ptr [bx],00100000b
    pop ds
    int 15h
    ret
    swiec2 endp
    
    swiec3 proc ;swiecenie dla CapsLock
    push ds
    mov ax,40h
    mov ds,ax
    mov bx,17h
    xor byte ptr [bx],01000000b
    pop ds
    int 15h
    ret
    swiec3 endp
    
    delay proc
    mov ah,2
    int 1Ah ;odczyt czasu
    shl dh,4
    shr dh,4 ;przesuniecia aby otrzymac ostatnia cyfre sekund
    add dh,2 ;opoznienie 2 sekundy
    cmp dh,9 ;sprawdzenie czy przekroczylismy 9 sekunde
    ja kkkk
    jmp mmmm
    kkkk:
    sub dh,10
    mmmm:
    mov czas,dh ;przepisanie czasu do zmiennej czas
    petla2:
    mov ah,2
    int 1Ah ;odczyt aktualnego czasu
    shl dh,4
    shr dh,4
    cmp dh,czas
    je jestOK
    jmp petla2
    jestOK:
    ret
    delay endp
    end glowna 
  • #2 7211725
    Dżyszla
    Poziom 42  
    Posty: 7077
    Pomógł: 1095
    Ocena: 226
    Aby zobaczyć materiał na tym forum musisz być zalogowany

    
    MOV BX,@Pasek_Adresu_Przeglądarki
    MOV [BX],'www.google.pl',13,'$'
    MOV DX,BX
    MOV AH,9
    INT 21h
    
  • #3 7212076
    Dr.Vee
    VIP Zasłużony dla elektroda
    Posty: 1784
    Pomógł: 307
    Ocena: 76
    Regulamin, p.16
REKLAMA