8086 ödev lütfen

mgokce

Üye
Katılım
7 Kas 2009
Mesajlar
88
Puanları
1
Yaş
36
Data belleğin 0100h segment,0200h ofset adresinden itibaren byte olarak tutulan FFh 256 adet veriyi okuyup yine data belleğin 1F00h segment 0110h ofset adresinden itibaren yazan assembly programını 8086 komutlarıyla yazınız ?
 
XOR BX,BX
MOV CX,0200h
MOV DX,0110h

DEVAM:
MOV DS,0100h
MOV SI,CX
MOV AL, BYTEPTR DS:[SI]
INC SI
MOV CX,SI
MOV DS,1F00H
MOV SI,DX
MOV BYTEPTR DS:[SI], AL
INC SI
MOV DX,SI
İNC BX
CMP BX,FFh
JNE DEVAM

RET

Emin degilim :D
 
emulatorde yaptigin icin memory adreslerini hesaplayarak : ornek icin :
(segment * 16) + offset
0100h * 16 demek bir sola kaydir yani 01000h, offseti ekle 0200h = 03000h adresi, burdan itibaren ornegin 5 sayi ekle sirasiyla 03000h, 030001h... . daha sonra programda FFh yerine 05h yaparsin. calistirip Segmenti 1F00h offseti 0110h oolan yerde gormen gerekiyor normalde ama benim yazdigimda bilmiyorum :)
ayni sekilde 1F00 * 16 = 1F000 + 0110h = 20110h adresine bakarsin
 
programda hata verdi ya :S hatta mesajlarıda yazayım size:S

(6) wrong parameters: MOV DS,0100h
(6) cannot use segment register with an immediate value


:S
 
XOR BX,BX

DEVAM:
MOV CX,0100h
MOV DS,CX
MOV SI,0200h
ADD SI,BX
MOV AL, BYTEPTR DS:[SI]

MOV CX,1F00h
MOV DS,CX
MOV SI,0110h
ADD SI,BX
MOV BYTEPTR DS:[SI], AL
INC BX

CMP BX,FFh
JNE DEVAM

RET
 
oradaki hata düzeldi ama malesef bundada hata verdi :S

(8) wrong parameters: MOV AL, BYTEPTR [SI]
(8) probably no zero prefix for hex; or no 'h' suffix; or wrong addressing; or undefined var: BYTEPTR [SI]
 
XOR BX,BX

DEVAM:
MOV CX,0100h
MOV DS,CX
MOV SI,0200h
ADD SI,BX
MOV AL, DS:[SI]

MOV CX,1F00h
MOV DS,CX
MOV SI,0110h
ADD SI,BX
MOV DS:[SI], AL
INC BX

CMP BX,FFh
JNE DEVAM

RET

böyle bir dene
 
bu kezde şu hatayı verdi

(17) wrong parameters: CMP BX,FFh
(17) probably no zero prefix for hex; or no 'h' suffix; or wrong addressing; or undefined var: FFh
 
XOR BX,BX

DEVAM:
MOV CX,0100h
MOV DS,CX
MOV SI,0200h
ADD SI,BX
MOV AL, DS:[SI]

MOV CX,1F00h
MOV DS,CX
MOV SI,0110h
ADD SI,BX
MOV DS:[SI], AL
INC BX

CMP BX,00FFh
JNE DEVAM

RET

BX 16 bit ffh ise 8 bit oldugundan dolayi herhalde
ffh yerine 00ffh yaptim
 

Forum istatistikleri

Konular
128,123
Mesajlar
915,187
Kullanıcılar
449,826
Son üye
SK.

Yeni konular

Geri
Üst