-
Potrzebna pomoc
Witam , mam do napisania sprawozdanie odnośnie 3 prostych programu napisanych w asamblerze lecz niestety za dużo o tym języku programowania nie wiem Sprawozdanie ma wyglądać tak że do mam napisać co robią konkretne linijki programu.
Pierwszy program:
.model small
.stack 100h
.data
info db "Dzien dobry. To pierwszy program",0Ah,0Dh,'$'
.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 ax,4C00h
int 21h
glowna endp
end glowna
Drugi program:
.model small
.stack 100h
.data
info db "Zabawa z diodami klawiatury (obserwuj diody CapsLock i NumLock)",0ah,0dh,'$'
info1 db "Wybierz liczbe powtorzen w petli od 1 do 4",0ah,0dh,'$'
info3 db "Wpisz liczbe z zakresu 1 do 4",0ah,0dh,'$'
liczba dw ?
.code
glowna proc
mov ax,@data
mov ds,ax
mov ah,0
mov al,3
int 10h
mov ah,9
mov dx,offset info3
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
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
koniec:
mov ax,4C00h
int 21h
glowna endp
end glowna
Trzeci program:
.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
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
popa
call swiec2
cmp cap,1
je sss
jmp www
sss:
mov ah,0Bh
int 21h
call swiec3
www:
loop petla
mov ax,4c00h
int 21h
glowna endp
swiec1 proc
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
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
shl dh,4
shr dh,4
add dh,2
cmp dh,9
ja kkkk
jmp mmmm
kkkk:
sub dh,10
mmmm:
mov czas,dh
petla2:
mov ah,2
int 1Ah
shl dh,4
shr dh,4
cmp dh,czas
je jestOK
jmp petla2
jestOK:
ret
delay endp
end glowna
-
Pierwszy ustawia rozdzielczość na 80x25 i wypisuje text na ekranie. Reszta za długa na free siedzenie. Mogę przeanalizować za 400zł.
-
Elitegroup Drogo chcesz jak na 30 minut pracy (licząc że się nie zna asma i się googluje). :P
Heh a mi się przypomniało jak programowałem w asmie ![Smile](images/smilies/smile.png)
Do rzeczy , za free nikt za ciebie nie zrobi zadania. Zobacz ile zarabiają programiści i odpowiednio wyceń jak chcesz gotowca.
Teraz najistotniejsze dla Ciebie czyli to czego masz szukać :
po pierwsze podstawy podstaw - czyli co są rejstry , je, jz , cmp, mov itd , czyli skoki, porównania, przeniesienia,itd.
przerwania BIOS - int 10h
przerwania DOS int 21h
jak poznasz , reszta sama się fajnie ułoży
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
-
Forum Rules