Yazar |
|
uslanmaz4
ANKARA
Kayıt: 15.01.2006 |
|
"Mr.Gones" stringini tarıyıp "G" harfini "j" ile değiştiren program
.data
data1 db 'Mr.Gones','$'
.code
main proc far
mov ax,@data
mov ds,ax
mov es,ax
cld
mov di,offset data1
mov cx,09
mov al,'G'
repne scasb
jne over
dec di
mov byte ptr[di],'J'
over: mov ah,09
mov dx,offset data1
lea dx,data1
int 21h
mov ah, 1
int 21h
mov ah,4ch
int 21h
main endp
end main
Birde boyle deneyin
kedicik kedicik
|
|
Yazar |
|
gultekinm
Kayıt: 02.02.2006 |
|
offman yazdi | arkdaşlar int veya double sayılarla nasıl işlem yapabilirim daha doğrusu mesela
data1 db 2,3,5,7,8,9,'$'
ben bu sayıları toplatıyorum tamam duzgun olarak topluyor istediğim deger ama ekrana basınca asci değerini basıyor ne yapcam ? |
kodu çalıştırdıktan sonra vars butonuna tıklayarak DATA segmentinde tanımladıgın degişkenllerin değerlerini görebiliyorsun show as signed olarak degiştirirsen normal bir şekilde görebilirsin
just so tired of being me
|
|
Yazar |
|
aliozkn
Manisa
Kayıt: 13.04.2006 |
|
Edit: gerekiyormuş:)
|
|
Yazar |
|
offman
Kayseri
Kayıt: 20.01.2006 |
|
bandit yazdi | offman yazdi | arkdaşlar int veya double sayılarla nasıl işlem yapabilirim daha doğrusu mesela
data1 db 2,3,5,7,8,9,'$'
ben bu sayıları toplatıyorum tamam duzgun olarak topluyor istediğim deger ama ekrana basınca asci değerini basıyor ne yapcam ? |
kodu çalıştırdıktan sonra vars butonuna tıklayarak DATA segmentinde tanımladıgın degişkenllerin değerlerini görebiliyorsun show as signed olarak degiştirirsen normal bir şekilde görebilirsin |
O tamada ben ekrana basmak istiyorum bu değerleri?
331. KSD
*.NET DEVELOPER
|
|
Yazar |
|
emracekic
adana
Kayıt: 21.01.2006 |
|
Gones Jones i
arkadaslar buyk hafi kucuk harfe ceviren program uzerinde degişiklik yaptım çalışıyo alabilirsininiz
; this is a program in 8086 assembly language that
; accepts a character string from the keyboard and
; stores it in the string array. the program then converts
; all the lower case characters of the string to upper case.
; if the string is empty (null), it doesn't do anything.
name "upper"
org 100h
jmp start
; first byte is buffer size,
; second byte will hold number
; of used bytes for string,
; all other bytes are for characters:
string db 20, 22 dup('?')
new_line db 0Dh,0Ah, '$' ; new line code.
start:
; int 21h / ah=0ah - input of a string to ds:dx,
; fist byte is buffer size, second byte is number
; of chars actually read. does not add '$' in the
; end of string. to print using int 21h / ah=09h
; you must set dollar sign at the end of it and
; start printing from address ds:dx + 2.
lea dx, string
mov ah, 0ah
int 21h
mov bx, dx
mov ah, 0
mov al, [bx+1]
add bx, ax ; point to end of string.
mov asda [bx+2], '$' ; put dollar to the end.
; int 21h / ah=09h - output of a string at ds:dx.
; string must be terminated by '$' sign.
lea dx, new_line
mov ah, 09h
int 21h
lea bx, string
mov ch, 0
mov cl, [bx+1] ; get string size.
jcxz null ; is string is empty?
add bx, 2 ; skip control chars.
upper_case:
; check if it's a lower case letter:
;cmp byte ptr [bx], 'a'
;jb ok ;buyuk degilse zipla
;cmp byte ptr [bx], 'z'
;ja ok ;buyukse zipla
cmp byte ptr [bx], 'G'
jne diger
mov [bx],'J'
diger:
cmp byte ptr [bx], 'g'
jne ok
mov [bx],'j'
; convert to uppercase:
; upper case letter do not have
; third bit set, for example:
; 'a' : 01100001b
; 'a' : 01000001b
; upper case mask : 11011111b
; clear third bit:
;and byte ptr [bx], 11011111b
ok:
inc bx ; next char.
loop upper_case
; int 21h / ah=09h - output of a string at ds:dx.
; string must be terminated by '$' sign.
lea dx, string+2
mov ah, 09h
int 21h
; wait for any key press....
mov ah, 0
int 16h
null:
ret ; return to operating system.
emra çekiç
|
|
Yazar |
|
volkan
Giresun
Kayıt: 26.07.2006 |
|
offman yazdi | arkdaşlar int veya double sayılarla nasıl işlem yapabilirim daha doğrusu mesela
data1 db 2,3,5,7,8,9,'$'
ben bu sayıları toplatıyorum tamam duzgun olarak topluyor istediğim deger ama ekrana basınca asci değerini basıyor ne yapcam ? |
Eğer sum'ı tuttuğun saklayıcı ax ise
mov dx, ax
mov ah, 0eh
or dh, 30h
mov al, dh
int 10h
or dl, 30h
mov al, dl
int 10h
Bu işe yaramalı.. Geç oldu ama :)
|
|
Yazar |
|
alpersara
Kayıt: 12.01.2006 |
|
arkadaslar bu mr. gones lu örneği klavyeden girmek istersem offseti nasıl ayarlayacağım bir turlu beceremedim.yapabilen birisi paylasırsa sevinirim.
|
|
Yazar |
|
wardom
Kirklareli
admin
Kayıt: 12.11.2006 |
|
Sınava giren herkese 5 puan veriliyormuş ve 2. giren gruptan (duyduklarım doğruysa) en yüksek 8 alan varmış
zamanın ötesinde edit: En yüksek 10 varmış
www.sonergonul.net
|
|
Yazar |
|
reccae
istanbul
banlandı
Kayıt: 15.02.2006 |
|
sınava girmeyenlerin finalde çekeceği var. gerçi girenlerde bişey yapamadı ama yinede 5-8 puan önem kazanır finalde
herkese geçmiş olsun.
bu arada wardom notlar 30 üstünden. 10 diyip geçme yani
insa ettigim binanin cimentosu kelâm
|
|
Yazar |
|
wardom
Kirklareli
admin
Kayıt: 12.11.2006 |
|
Evet biliyorum recep %30'u alınıyormuş şimdi öğrendim.Ama yine de sınav çıkışı "sınavım güzeldi","sınav kolaydı" die bişey hiç duymadım.Umarım final istediğiniz gibi olur.Tabi dersin gerekliliği de ayrı bir konu
www.sonergonul.net
|
|
Yazar |
|
reccae
istanbul
banlandı
Kayıt: 15.02.2006 |
|
wardom yazdi | Evet biliyorum recep %30'u alınıyormuş şimdi öğrendim.Ama yine de sınav çıkışı "sınavım güzeldi","sınav kolaydı" die bişey hiç duymadım.Umarım final istediğiniz gibi olur.Tabi dersin gerekliliği de ayrı bir konu |
sınav basitti.
kimseden duymadıysan benden duy. sadece dizideki 5 sayıyı toplayıp ekrana bunlardan türeyen bir sayı yazdırmamız gerekiyordu.
"haftalık ücretiniz: 720 ytldir" gibi. tabi onaltılık sisteme alışınca onluk sistemde sudan çıkmış balığa döndüm ben şahsen
insa ettigim binanin cimentosu kelâm
|
|
Yazar |
|
ridaniye
antalya
Kayıt: 26.04.2006 |
|
emracekic yazdi | Gones Jones i
arkadaslar buyk hafi kucuk harfe ceviren program uzerinde degişiklik yaptım çalışıyo alabilirsininiz
; this is a program in 8086 assembly language that
; accepts a character string from the keyboard and
; stores it in the string array. the program then converts
; all the lower case characters of the string to upper case.
; if the string is empty (null), it doesn't do anything.
name "upper"
org 100h
jmp start
; first byte is buffer size,
; second byte will hold number
; of used bytes for string,
; all other bytes are for characters:
string db 20, 22 dup('?')
new_line db 0Dh,0Ah, '$' ; new line code.
start:
; int 21h / ah=0ah - input of a string to ds:dx,
; fist byte is buffer size, second byte is number
; of chars actually read. does not add '$' in the
; end of string. to print using int 21h / ah=09h
; you must set dollar sign at the end of it and
; start printing from address ds:dx + 2.
lea dx, string
mov ah, 0ah
int 21h
mov bx, dx
mov ah, 0
mov al, [bx+1]
add bx, ax ; point to end of string.
mov asda [bx+2], '$' ; put dollar to the end.
; int 21h / ah=09h - output of a string at ds:dx.
; string must be terminated by '$' sign.
lea dx, new_line
mov ah, 09h
int 21h
lea bx, string
mov ch, 0
mov cl, [bx+1] ; get string size.
jcxz null ; is string is empty?
add bx, 2 ; skip control chars.
upper_case:
; check if it's a lower case letter:
;cmp byte ptr [bx], 'a'
;jb ok ;buyuk degilse zipla
;cmp byte ptr [bx], 'z'
;ja ok ;buyukse zipla
cmp byte ptr [bx], 'G'
jne diger
mov [bx],'J'
diger:
cmp byte ptr [bx], 'g'
jne ok
mov [bx],'j'
; convert to uppercase:
; upper case letter do not have
; third bit set, for example:
; 'a' : 01100001b
; 'a' : 01000001b
; upper case mask : 11011111b
; clear third bit:
;and byte ptr [bx], 11011111b
ok:
inc bx ; next char.
loop upper_case
; int 21h / ah=09h - output of a string at ds:dx.
; string must be terminated by '$' sign.
lea dx, string+2
mov ah, 09h
int 21h
; wait for any key press....
mov ah, 0
int 16h
null:
ret ; return to operating system.
|
Kodu yanlşı yere yazmışsın Emra. Hiç yoktan sayfayı uzatiyosun yani :)
|
|
Yazar |
|
ganim
Kayıt: 09.07.2006 |
|
reccae yazdi | wardom yazdi | Evet biliyorum recep %30'u alınıyormuş şimdi öğrendim.Ama yine de sınav çıkışı "sınavım güzeldi","sınav kolaydı" die bişey hiç duymadım.Umarım final istediğiniz gibi olur.Tabi dersin gerekliliği de ayrı bir konu |
sınav basitti.
kimseden duymadıysan benden duy. sadece dizideki 5 sayıyı toplayıp ekrana bunlardan türeyen bir sayı yazdırmamız gerekiyordu.
"haftalık ücretiniz: 720 ytldir" gibi. tabi onaltılık sisteme alışınca onluk sistemde sudan çıkmış balığa döndüm ben şahsen
|
her ne kadar assembly yazmak hoşuma gitsede içimde bir güç "bu dili öğrenme" diye diretiyor. bende onu dinliyorum.
hocamızın notlama sistemine de hayran kaldım, derliyor sonuca bakıyor ve koda şöyle bir göz gezdirip 5,6,8,10,12*,15 gibi notlar verebiliyor. zor mesele...
(12 aldım mutluyum :)
bence de sınav kolaydı ama ciddi çalışmadığımız için yüksek not alamadık sanırım, ben en fazla 25 duydum, 30 alan var mı?
|
|
Yazar |
|
orhan
istanbul
admin
Kayıt: 17.11.2005 |
|
sınav kolaydı kitaptaki orneklere çalışınca yapılabiliyor. benim takıldığım yer ekrana birşeyler yazdırmaktı. ama genelinde kolay bir sınavdı. bu da finalin baya zor olacağı manasına geliyor :)
N/A
|
|
Yazar |
|
gultekinm
Kayıt: 02.02.2006 |
|
;Bir kisinin calisma saatinin 40 saat oldugunu ve saat basi 12 ytl aldigini dusunelim
;Buna ek olarak fazla mesai yaptigi her saat icin 18 ytl almaktadir
;Haftalik kazanc, Ek mesai kazanci ve Toplam Kazanci hesaplayan bir program yaziniz
;Gunluk fazla mesai over_8_hrs DB 3,5,2,4,1 olrak tanimlanmistir
data segment
haftalik_kaz db "Haftalik Kazanci:","$"
ek_mes db "Ek mesai Kazanci:","$"
top_kaz db "Toplam Kazanci :","$"
over_8_hrs db 3,5,2,4,1
haf_cal_sa db 40
saat_ucr db 12
ek_mes_ucr db 18
haftalik dw ?
ek dw ?
toplam dw ?
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
mov ax, data
mov ds, ax
mov es, ax
mov al,haf_cal_sa
mul saat_ucr
mov haftalik,ax
mov toplam,ax
sub ax,ax
mov si,offset over_8_hrs
mov ek,00
mov cx,05
back:mov al,ek_mes_ucr
mov bl,[si]
mul bl
inc si
add ek,ax
add toplam,ax
loop back
mov ah,09
mov dx,offset haftalik_kaz
int 21h
sub ax,ax
mov ax,haftalik
call yazdir
mov ah,02 ;kursoru alt satira gecir
mov bh,00 ;
mov dl,00 ;
mov dh,01 ;
int 10h
mov ah,09
mov dx,offset ek_mes
int 21h
sub ax,ax
mov ax,ek
call yazdir
mov ah,02 ;kursoru alt satira gecir
mov bh,00 ;
mov dl,00 ;
mov dh,02 ;
int 10h
sub ax,ax
mov ax,toplam
mov ah,09
mov dx,offset top_kaz
int 21h
sub ax,ax
mov ax,toplam
call yazdir
mov ah, 1
int 21h
mov ax, 4c00h
int 21h
ends
yazdir proc
cmp ax, 0
jne next
push ax
mov al, '0'
mov ah, 0eh
int 10h
pop ax
ret
next:
pusha
mov dx, 0
cmp ax, 0
je cik
mov bx, 10
div bx
call next
mov ax, dx
add al, 30h
mov ah, 0eh
int 10h
jmp cik
cik:
popa
ret
endp
end start
kodun girisine soruyuda yazdim
1. grup cevabi boyle olmaliydi, ekrana basmak gercekten cok zor bi olay
diger gruplarin sorularini da yollayabilirseniz sevinirim
just so tired of being me
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | | | | | | | | | | |