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,332
Mesajlar
916,762
Kullanıcılar
450,176
Son üye
electrical_engineer

Yeni konular

Geri
Üst