8086 İLE ilgili ödevim var lütfen yardım...:(

mgokce

Üye
Katılım
7 Kas 2009
Mesajlar
88
Puanları
1
Yaş
36
ben 8086 da bir ödevi var bir miktar gittim ancakdevam edemiyorum biryerde hata çıkıyor :S ben soruyu ve yaptığımı yazayım nerde hatam var kontrol ederseniz sevinirm...


SORU : İlk elemanında aynı dizideki byte veri sayısının tutulduğu bir data dizisindeki ( DT[] dizisi) sayıların 0Ah değerinden büyük ve küçük olanlarının sayısını veren program yazınız ?

BENİM YAPTIĞIM PROGRAM:

MOV SI,OFFSET DT ;
XOR BX,BX
XOR CX,CX
MOV CL,BYTE PTR [SI] ;
MOV DX,CX
INC SI

REPS:
CMP BYTE PTR [SI],0Ah ;
JA REPS1
JB REPS2

REPS1:

INC AX
INC SI
DEC CX
CMP CX,0
JNE REPS
JMP STOP

REPS2:

INC BX
INC SI
DEC CX
CMP CX,0
JNE REPS

STOP:

HLT




nrede yanlış yaptım bulamadım ben yine çalışıyorum bunu bulmaya ama yardım lütfen :S
 
hatami sonuc yanlis mi ?
ax'i hic bir yerde xor lamamissin. Yani 0 lamamissin ilk basta belki ondan kaynaklaniyor olabilir mi ?
 
hatami sonuc yanlis mi ?
ax'i hic bir yerde xor lamamissin. Yani 0 lamamissin ilk basta belki ondan kaynaklaniyor olabilir mi ?


ilginiz için teşekkürler ancak hata ordan kaynaklanmıyor... emilatörde çalıştırdığım zaman şöle bir hata veriyor
- cannot be evaluated: OFFSET DT
- undefined variable or over 16 bits


bir yerde eksiklik var sadece belki basit bir eksiklik ama yeni öğrendiğim için göremedim :S :(:confused:
 
sanırım DT dizisini tanimlamamissin yada tanimlamissan gormezlikten gel:

yanilmiyosam örnegin degiskenler 100h adresinden baslayarak 1 byte sekilnde dizdirelim
ORG 100h
DT DB 00h, 11h,ffh seklinde olsun daha sonra senin programda 200h adresinden baslasin:

ORG 200H
programin

bu sekilde calisacagini dusunuyorum
 
sanırım DT dizisini tanimlamamissin yada tanimlamissan gormezlikten gel:

yanilmiyosam örnegin degiskenler 100h adresinden baslayarak 1 byte sekilnde dizdirelim
ORG 100h
DT DB 00h, 11h,ffh seklinde olsun daha sonra senin programda 200h adresinden baslasin:

ORG 200H
programin

bu sekilde calisacagini dusunuyorum

anlamadım :S
 
ya ben yeni öğreniyorum ve basit bazı şeyler biliyorum :S ben 8086da böle bir komut görmedim
 
kodun tamami ilk mesajinda gibiyse hic bir yerde DT dizisi tanimli degil: Kodu bu sekilde yapinca hata veriyor mu
**************************************************************************************
ORG 100h

MOV SI,OFFSET DT ;
XOR BX,BX
XOR CX,CX
MOV CL,BYTE PTR [SI] ;
MOV DX,CX
INC SI

REPS:
CMP BYTE PTR [SI],0Ah ;
JA REPS1
JB REPS2

REPS1:

INC AX
INC SI
DEC CX
CMP CX,0
JNE REPS
JMP STOP

REPS2:

INC BX
INC SI
DEC CX
CMP CX,0
JNE REPS

STOP:

RET

DT DB 03h,01h,0bh,10h
**************************************************************************************
DT de ilk kisim 03h yani 3 eleman var. Bunlarda 01h,0bh,10h.
 
DT bir degisken ismi, tanimli degilse anlayamaz, benim bir onceki mesajdaki kismi emulatorde derledin mi
 

Forum istatistikleri

Konular
128,198
Mesajlar
915,767
Kullanıcılar
449,979
Son üye
schule48

Yeni konular

Geri
Üst