PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : کمک



AradD
29-05-2012, 18:11
کی می تونه این چند خط کد رو برای من توضیح بده نیاز دارم شدیدا .
ببخشید سلام یادم رفت .




org 00h
call com_lcd
start: Mov dptr,#600h
mov r5,#00h
mov r7,#8fh
mov r4,#0cfh
aa: Call data_lcd
call delay
mov a,#1ch
call com_wr
inc r5
inc r7
inc r4
cjne r5,#18,aa
sjmp start
com_lcd:mov a,#38h
call com_wr
mov a,#01h
call com_wr
mov a,#0ch
call com_wr
mov a,#8fh
call com_wr
ret
data_lcd:mov a,r7
call com_wr
mov a,r5
movc a,@a+dptr
call data_wr
mov a,#0c0h
call com_wr
mov a,r4
call com_wr
inc r5
mov a,r5
movc a,@a+dptr
call data_wr
ret
com_wr:call redy
mov p1,a
clr p3.0
clr p3.1
setb p3.2
clr p3.2
ret
data_wr:call redy
mov p1,a
setb p3.0
clr p3.1
setb p3.2
clr p3.2
ret
redy:setb p1.7
clr p3.0
setb p3.1
back: Clr p3.2
setb p3.2
jb p1.7,back
ret
delay: Mov r0,#10
dd: Mov r1,#100
ff: Mov r2,#200
gg: Djnz r2,gg
djnz r1,ff
djnz r0,dd
ret
org 600h
db 'sir'
db 'fanta'
end

agape
29-05-2012, 22:57
دایی جان این از چند خط خیلی بیشتره
زبان اسمبلی خیلی ساده هست خودت به راحتی میتونی درکش کنی
فقط باید کارکرد هر دستور اسمبلی رو بدونی که اونم به فراوانی تو نت هست
مثلا سطر اول میگه برنامه از حافظه 0 فلش شروع بشه
بعد تابع com_lcd فراخوانی میشه که احتمالا برای پیکر بندی ال سی دی هست
که تو این تایع به ترتیب مقادیر 38h,01h,0ch,8fh رو به ال سی دی می فرسته
بعد آدرس 600h لود میکنه و اون رو می فرسته به ال سی دی که رشته hgohsisa رو تشکیل میده
و همینطور الی آخر میتونی خودت تفسر کنی

AradD
30-05-2012, 11:45
ممنون agape جون !
اگه بیشتر می تونستی توضیح بدی ممنون می شدم . راستیتش برای یه ترم وقت یاد گیری asm رو ندارم ! اصلا به دردم هم نمی خوره . این ترم این استاد نمی دونم از کجا اصلا پیدا شده . این همه کامپایلر و زبان قابل فهم .....
با تشکر از شما :-D