ورود

View Full Version : اشکال در برنامه تبدیل حرف A به *



mamad1994
سه شنبه 22 مهر 1393, 21:40 عصر
دوستان سلام می خوام برنامه ای بنویسم حرف a رو ستاره تبدیل کنه
اینی که نوشتم فکر میک نم درسته اما موفع کامپیل از ریختن [di] به al عیب می گیره
ممنون می م کمکم کنید

stacksg segment para stack 'stack'
dw 64 dup(' ')
stacksg ends
datasg segment para 'data'

str db "mohammad naaat" ,'$'
str2 db 16 dup(' ')
datasg ends
codesg segment para 'code'

assume ss:stacksg,ds:datasg,cs:codesg

main proc far
mov ax, datasg
mov ds, ax
mov ah, 2h
mov dh, 10
mov dl, 30
mov bh, 0
int 10h
lea dx, str
mov ah, 9h

lea SI,str
lea di,str2


a5:mov al,[SI]
cmp al,'a'
je a10
mov[di],al
jmp a20
a10:mov al,'*'
move [di],al

a20:
inc SI
inc DI
loop a5

mov ah,09h
lea DI,str2
int 21h
mov ah,4ch


int 21h
main endp


codesg ends
end main

masoud.8086
چهارشنبه 23 مهر 1393, 08:28 صبح
سلام
همون خطی که میگی خطا داری واسه اونا که فاصله بین دستور mov و[di] رعایت نکردی چند خط پایین تر دوباره مشابه همین دستور اینبار دستور move نوشتی که درستش mov همچنین int 21 نذاشتی همچنین تعریف کردن ارایت برای اینکه از ورودی بگیره اشتباس.برنامتو خیلی پیچوندی.هر وقفه و قسمتی که مینویسی مرتب جدا کن و ی توضیحاتم براش بنویس که هر کس کدتو میبینه بتونه انالیز کنه.
بعد از گرفتن خطا و اجرا شدن برنامه داخل loop میوفته بررسی کن.
موفق باشی.