الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أتمنى من المختصين مساعدتي في اختصار هذا الكود

مغلق
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أنا بصراحة لا أعرف حاجة في لغة الاسمبلي

وأتمنى من المختصين مساعدتي في اختصار هذا الكود

لأن أظن أن فيه شروحات وهي ليست من صلب البرنامج


DEFINE INTHAND Label
Label is the beginning of your interrupt routine.
PBP will place a jump to this Label at
location 4 in the PICmicro.
' Assembly language interrupt example
led var PORTB.1
wsave var byte $20 system
ssave var byte bank0 system
psave var byte bank0 system
Goto start ' Skip around interrupt handler
‘ Define interrupt handler
define INTHAND myint
‘ Assembly language interrupt handler
asm
; Save W, STATUS and PCLATH registers
myint movwf wsave
swapf STATUS, W
clrf STATUS
movwf ssave
movf PCLATH, W
movwf psave
; Insert interrupt code here
; Save and restore FSR if used
bsf _led; Turn on LED (for example)
; Restore PCLATH, STATUS and W registers
movf psave, W
movwf PCLATH
swapf ssave, W
movwf STATUS
swapf wsave, F
swapf wsave, W
retfie
endasm
‘ PicBasic Pro program starts here
start: Low led ‘ Turn LED off
‘ Enable interrupt on PORTB.0
INTCON = %10010000
loop: Goto loop ‘ Wait here till interrupted
Interrupts

تحياتي

#2

هادا الكود مش لغة اسمبلي 8086 :o هدا لغة الأسمبلي الخاصة بال pic يعني اذا بدك تستفيدي اكتر انقلي السؤال لمنتدى

الدوائر الرقمية :D

البرنامج بعمل interrupt -_- من تصميم المبرمج يقوم بحفظ محتويات المسجلات المهمة قبل تنفيذ الinterrupt متل

status RG , pcl , pclatch, ,وغيرها حتى يحفظ address اللي توقف عنده قبل تنفيذ الinterrupt ثم ينفذه

ثم يعيد هذه القيم من الtemp الى الريجسترات الأصلية المذكورة سابقا

بس عشان تختصري البرنامج

فمتل ما قلت اتوقع اذا نفلتيه للمنتدى الأخر يمكن تستفيدي اكتر ;)

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#3

شكرا white soul, فعلا هذا الكود هو كود لغة التجميع للمتحكم الصغري PIC الذي يبرمج بAssembly خاصة بعض الشيء تختلف تماما عن لغة المعالجات X86 .فهو متحكم risc من شركة microchip ك pic16f84 مثلا.

البرنامج يشرح طريقة عمل إجراءية procedure لمقاطعة تصل إلى المتحكم PIC عبر الرجل RB0/int .

led 	var PORTB.1
wsave 	var byte $20 system
ssave 	var byte bank0 system
psave 	var byte bank0 system
	Goto 	start 	;Skip around interrupt handler

; Define interrupt handler
define INTHAND myint 	; Assembly language interrupt handler 
	asm

; Save W, STATUS and PCLATH registers
myint 	movwf wsave
	swapf STATUS, W
	clrf STATUS
	movwf ssave
	movf PCLATH, W
	movwf psave
; Insert interrupt code here
;.......
;.......
; Save and restore FSR if used
	bsf _led	;Turn on LED (for example)
; Restore PCLATH, STATUS and W registers
	movf psave, W
	movwf PCLATH
	swapf ssave, W
	movwf STATUS
	swapf wsave, F
	swapf wsave, W
	retfie
	endasm

; PicBasic Pro program starts here
start:		 Low led 	; Turn LED off
; Enable interrupt on PORTB.0
	INTCON = %10010000
loop: 	
	Goto loop 	; Wait here till interrupted

تم تعديل هذه المشاركة بواسطة ikossan في 20 مايو 2006 في 15:03

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…