کامپیوتر و IT و اینترنتعلوم مهندسی

تجزيه و تحليل قطعه برنامه های زبان اسمبلی Z80

صفحه 1:
تجزیه «تملیل قطعه برنامه های زبان اسمیلی 280

صفحه 2:

صفحه 3:
Inside Computer:Implement Instruction Set Processor Controf- Main Memory ‘Datapat ١ ۶۲ 8 د مااي ب م جد و ۵ ALU Control takes programasinput fit interpretseachinstruction andtel(s the Datapathtooperateondatavia ALUmemoryandregisters

صفحه 4:
LABEL:OPCODE (DS {COMMENTS ‏هشه‎ لوطا لوص أومصادورص

صفحه 5:
اسمبلر دو گذره ecutable Image >{ 1st Pass | »[2nd Pass First Pass: scanprogramfile findalllabelsandcalculatethe corresponding addresses! thisiscalledthe symbol table SecondPass: ee convert instructions tomachine Canguage, ‘usinginformationfromsymbol table

صفحه 6:
1 سمبلر دو كذ كذره

صفحه 7:
۱- جمع دودویی ۸بیتی بدون بیت نهلی :

صفحه 8:
۲- جمع دودویی ۸بیتی با بیت نهلی : | * ‏لطع‎ 46 | ° LD 94 ° LD AC ° ADDAE حى مع * هو ور ۰ ‎ADCAD‏ ° ° LD BA ° HALT

صفحه 9:
۳ cau ly ‏جمع‎ -۳ 3 ۶ ۲ 1 ۶ ‏ور‎ 07 ۶ 201 6 ° HALT

صفحه 10:
1 هر ۶ . ١ * ‏ططق‎ 1 * ‏هدم‎ ‎° HALT

صفحه 11:
۵- تفریق دودویی ۸بیتی ‎i‏ f° cp azest ‏وا‎ ‎1 0 ° HALT

صفحه 12:
+- تفریق دودویی ۸بیتی بابیت قرضی ۶ 2 6 ۶ 2 4 “LD AC ° SUBAE * ‏حى مع‎ ۰ ‏هو ور‎ ° SBCAD * LD BA ° HALT

صفحه 13:
26 ظ۶ ‎١ "٠‏ ا ‎supasrat‏ * | ° DAA ° HALT

صفحه 14:
- مقایسه های قالبی : 5 ° LD HL,1200H1 1° LD BC SOL * LDA 23H ° CPIR ° HALT

صفحه 15:
ساختارهای اساسی برنامه نویسی * رشته: ساختاری که بعد از ورود کنترل به آن. فرایندی انجام می پذیرد وسپس کنترل از آن خارم میگردد. * اگر-آنگاه: ساختاری که ابتدا یک شرط آ زمایش میشود سپس با توجه به نتیجه آزمایش فرآیندی انجام می پذیرد . * اگر-آنگاه-در غیر اینصورت: ساختاری که ابتدا یک شرط آزمایش میشود سپس در صورتی که شرط برقرار باشد فرآیند 1 و در غیر اینصورت فرایند لا انجام می پذیرد . 15

صفحه 16:
ساختارهای اساسی (ادامه) * تکرار-تا آنکه: ساختاری که در آن اجرای یک فرآیند تا وقوع یک شرط تکرار میشود. 58 امراء-مادامیکه: ساختاری که در آن یک شرط آزمایش میشود و سپس در صورت برقراری شرط فرایندی انجام می پذیرد (در غير اينصورت از حلقه فارج میگردد) و پس از آن ارزیابی شرط تکرار ميشلودو...

صفحه 17:
ساختارهای اساسی (ادامه) * هلقه قابل برنامه ریزی: ساختاری که در آن ابتداشمارنده ای مقداردهی اولیه میشود. سپس فرآیندی انجام می پذیرد . آنگاه یک واهد از محتویات شمارنده کم میگردد وبالافره آزمایش میشود که آیا شمارنده به صفر رسیده یا ن6؟ اگر محتویات شمارنده صفر تشده باشد فرآیند تکرار وق درغیر اینصورت کنترل از هلقه خارج خواهد ‎WW‏

صفحه 18:
18 After One Pop A Physical Stack و ا After Three More Pushes After One Push Initial State

صفحه 19:
19 Empty: | No Empty: | No TOP ‏درو‎ |* TOP #34 #5 #18 #31 ۸ #18 "۱۱۱۷ JUAN ER After Three After Two Pops More Pushes Empty: | No #18 ۱۱۱۸۸ 21111 HIATT 1۱۱۱۱۱۸ After OnePush TOP ۱۱۷۷ 0/۸ Initial State

صفحه 20:
20 Central Processing Control ic Logic unit Unit (cu) (ALU) Communicatio n Network

صفحه 21:
Using ProgramMemory SystemBus « carry output 21 Toregisters’ read/writeand cCockinputs Control Unit Program Memory Program Counter, PC Stores the position (or address)in program memory of thenext instruction. It is automaticallyincrementedafter each operation.

صفحه 22:
Using ProgramMemory SystemBus « carry output 22 Toregisters’ read/writeand cCockinputs Control Unit Program Counter Memory Program A Block of programmable read-only memory (ROM) containing a List of op-codes,i.e.a program.

صفحه 23:
23 SystemBus Program Counter ‘Toregisters’ read/writeand cfockinputs Program Memory Control Unit Instruction Register Aspecial register whose only purposeisto temporarily store the op-code of theinstruction currently being executed. The next instruction is fetchedwhilst the current oneis executed.

صفحه 24:
Using ProgramMemory SystemBus « carry output 24 Program Counter Toregisters’ 1 read/writeand cCockimputs Program Memory Control Unit A Block of Cogic that translates the op-codeinto the corresponding ALUselect inputsandthe control signalstothe registers.

صفحه 25:
“ارائه مثال ها

صفحه 26:
|-رشته: كنترل به آن واردء فرايندى انجام ميشود ونهايتا كنترل ‎[١‏ آن فارج میگردد. * CALLAVERAGE ‏هر‎ A(AVER) * CALLDISPLAY “© CALLSTANDARD ° LD A(STAN) * CALLDISPLAY

صفحه 27:
«-5۱ر-آنگاه: ابتدا یک شرط آزمایش میشود سپس با توجه به نتیجه آزمایش فرآیندی الجام می گیرد. IN A(TEMP) LD BA LD A(THERMOSTAT) CPAB JR NC Labels ۶ 71 OUT GLEATER) A Labels:IN ACTEM?) LD BA LD A(THERMOSTAT) CPAB JR CLabel2 1 ظ۶ OUT HEATER) A Label2:.. 27

صفحه 28:
۳- اکر-آنگاه-در غیر اینصورت: ابتدا یک شرط آزمایش میشود سپس در صورتی که شرط ۳ برقرار باشد فرآیند ۱ و در غیر اینصورت فرآیند | انجام میگیرد . IN A(TEMP) LD BA LD A( THERMOSTAT) CP AB JR CLabels JR NC Label2 Labels:LD AooH OUT (GLEATER) A JR Labels Label2:LD AomH out TER)A. ‏ا هط‎ 28

صفحه 29:
۴- تکرار-تا آنکه: یک فرآیند تا «قمع یک شرط تکرار ميشود. | * Loop: CALLREAD LD (2 "* INC HL ° cP ODH ۶ JR NZLoop

صفحه 30:
۵- امراء-مادامیکه: یک شرط آزمایش میشود و سپس در صورت برقراری شرط فرایندی انجام میگیرد (در غیر اینصورت از حلقه خارج میگردد) و پس از آن ارزیابی شرط تکرار میشودو. * Loop: CALL READ 2 CP oDH ۴ [7 8 LD (HD)A ° INC HL " JR Loop ۶ ۵ 30

صفحه 31:
+- هلقه قابل برنامه ريزى: ابتداشمارنده اى مقداردهى اوليه ميشود. سپس فرآیلدی المام ميشود آنگاه یک وامد از محتويات شمارنده كم ميكردد وبالافره آزمايش ميشود كه آيا شمارنده به صر رسيده يا نه؟ اكر ممتويات شمارنده صفر نشده فرآيند تكرار ميكردد درغير اينصورت ‎(١‏ حلقه فارج فواهد شد. ° ‏و۶‎ 2 * Loop: CALLREAD ° £D (H£),A ° INC HL ° DINZ Loop 31

صفحه 32:
تجزیه و تملیل برنامه / زیر برنامه جابجائی اطلاعات و مماسبات عددی

صفحه 33:
۱- انتقال بایت های اطلاعات 019 1 START:LD HL,BLOCK? LD 2 ۶ 7 LDIR HALT BLOCK7:EQU 1000HL BLOCK2:EQU 2000H COUNT: EQU 0724+

صفحه 34:
۷- اتتقال کلمات اطلاعات ۶٩ 0 7 | ° START:LD 31720031 "5 ٠ . ‏ط‎ 94 ۶ 2 1 CALL MWORD {( Next Page) ° HALT

صفحه 35:
انتقال کلمات اطلاعات (ادامه) ‎١ 0 01:6 36‏ © 2ع 5: 11/701 * وعد * ب 01‏ . * ‏مر ۶۰ ‎ ‎35

صفحه 36:
۳- تعویض بایت های اطلاعات 7 ه016 ‎START:LD 16‏ 1 ۶1 ‎LD Bsost‏ ‎Loop: LD AIX)‏ ‎£D Cy)‏ ‎£D (X)C‏ ‎LD TWA‏ ‎INC IX‏ ‎INC IY‏ ‎DINZ Loop‏ ‎HALT‏ 36

صفحه 37:
۶!- تعویض قالبی کلمات اطلاعات 029۵ 46 01251: 2911 4 SOUR: EQU 1000 COUNT: EQU 02003 START: LD IV,DEST ۶1 1 LD DECOUNT CALLEWORD {(On Next Page) HALT 37

صفحه 38:
زیر برنامه تعویض (ادامه) 38

صفحه 39:
۵- روشی دیگر برای طرامی زیر برنامه تعویض کلمات 016 1 EWORD:CALLXCHGB CALLXCHGB DEC DE 5 LD AD ° ORAE ۶ JR NZEZWORD ° RET

صفحه 40:
یر برنامه تعویض (ادامه) °XCHGB:LD A,(IX) ° £p Cy) ° £D (IX)C ۶ LD 02 ۶ INC IX ۶ INCIY ° RET

صفحه 41:
ب- انتقال رشته کاراکتری DB “ALI” 1 011 46 DEST: EQU 7 SOUR: EQU 2000 START:LD DE,DEST LD HLSOUR CALLSMOVE! (Next Page) HALT 41

صفحه 42:
زیر برنامه کاراکتر (ادامه) 1 ه011 ‎SMOVE:LD A(HL)‏ LD (DE),A INCHL INCDE CP ALF JR NZ,SMOVE RET LF: EQUOAHL 42

صفحه 43:
۷- برنامه جمع۱۰ عدد ذفیره شده در جدول (مافظه) حاصل ۸بیتی 0259 1 519210:2۲ 7 LD 0 XORA ° Loop: ADD AHL) ۴ INC HL ۶ DINZLoop ° HALT 43

صفحه 44:
۸- برنامه جمع۱۰ عدد ذفیره شده در جدول (حافظه) ‎Gly ly dole‏ 0116 03 START:LD 1,001 LD B70 XORA LD CA Loop: ADD AHL) JR NCDown INC C Down: INC HL 44

صفحه 45:
۱ ‏برنامه تفریق محتویات جدول ۲ از محتویات جدول‎ -٩ 029 7 START:LD HLLIST2 LD DELIST# LD B03 Loop: LD A(DE) SUB A(H1L) LD (HL)A INC Ho INC DE LIST7: EQU 28003 ۶1912: 4 45

صفحه 46:
۰- برنامه ضرب بدون علامت یک بایتی 1 وت ° ۶ ٩19217:20 3 1 ظ] ۶ ۱۳ CALL MULT! (Next Page) ° HALT 46

صفحه 47:
یر برنامه ضرب (ادامه) * ORG 1 ° MULT:LD 1 ۰ £D EA ° LD Doon ° Loop: ADD HL,DE ° DJINZLoop " RET 47

صفحه 48:
۱- زیر برنامه ضرب ( یک عدد ۸ بیتی در عدد ثابت۴ ) [ ۰ 029 94 ١ ١ ‏حب م ميصدحيد‎ * LD Hoost ° ADDHLHL ۶ ADDHLHL ۶ 7 48

صفحه 49:
زیر برنامه ضربا یکعد ۸ بیتی‌در عدد -12 ۱ ثابضا ) 1 ORG 150H ° MULT7:LD LA ۶ ‏ور‎ 1 ‏هر‎ 224۶ ADD HLHL ADD HLDE ADD HLHL ADD HLDE RET 49

صفحه 50:
۳- زیر برنامه ضرب ( یک عدد ۸ بیتی در عدد ثابت ‎(Jo‏ ۳ 0116 31 ° MULT 70:£D LA 5 LD 1 ADDHLHL LD DA LD EL ADD HLHL ADDHLHL ADD HL,DE RET و و و و و و و 50

صفحه 51:
- زیر برنامه ضرب بدون علامت یک بایتی *؟ ميفواهيم زير برنامه 8*1 - 306 را بنويسيم: 003 ه028 MULT:LD HL,c0003t LD DH Loop: OR A IRZENDP RRA [۷ ADDHLDE Loops: EX DEAL ADD HLHL =X DEHL IR Loop ENDP: RET 51

صفحه 52:
۵- زیر برنامه تقسیم (بر عدد ثابت ۴) ° ORG 150H ° DIV4: SRLA ‏سد‎ 2٠ تطع‎ 01 ° “RET

صفحه 53:
- زیر برنامه تقسیم بدون علامت یک بایتی 4 و09 * * DIV: LD Bos ۶ ‏وه‎ 1 * 2171:3181 303 ۰ LDA و هه ۰ ۰ ۰ ۰ ۰ JR CDIV2 LD HA INC L DIV2:DINZ DIV1 ° RET 53

صفحه 54:
۷- [یر برنامه ضرب علامتدار (یک بایتی) ORG 500H SMULT: PUSH AF XOR AE LD (SIGN)A POP AF CALL POSITIVE! (‘Next Page) PUSH AF POP AF CALL MULT! (Previous Pages) CALL TEST!(Next Page) RET 54

صفحه 55:
زیر برنامه مثبت کننده عدد یک بایتی (ادامه) 2 ها« 5 RETP ‏الم‎ * CPL pS. INCA

صفحه 56:
زیر برنامه تعیین علامت نتیجه (ادامه) ° TEST:LD A(SIGN) ۰ ORA - RETP. * DAN ۳ ٠ ‏مور‎ 2 Ip AL «۰ CPL ۰ 9 ۰ 2۶ ° RET 56

صفحه 57:
تیدیل رمز ها . جستجو در مدول و تاغیر های [مانی oo

صفحه 58:
۱- زیر برنامه تبدیل رمز ت26 به20۳5 || 214 01:6 5 80 511185 :3111 كم * , * CP AoAH “9 JR ‏موی‎ ‎* SUBAO7H ° ASHEX1:RET

صفحه 59:
۲- زیر برنامه تبدیل رمز ‎ASCII a HEX‏ * 2 01 1 ° HEXAS: ADD 4 * CP A SAH ۶٩ JR CHEXAS? ۶ ADDAO7TH ° HEXAS7:RET

صفحه 60:
۳- زیر برنامه تبدیل رمز 20 به دودوتی (/1۳0۵ظ) ۱ ۳ 0116 20031 BCDBIN: LD 01 BCDBIN7:LD A(DE) CP ADAH [3 72 CALL MULT70! (PREVIOUS PAGES) ADDAL LD LA LD AH ADC AooHt LD HA INC DE JR BCDBING BCDBIN2:RET 60

صفحه 61:
جستجو در جدول برای تبديل رمز ۱- تبدیل 2022620202۸426 به رمز هفت قسمتی 61 128 1: 128 4 28 1 29 4 ‏و29‎ 1 128 1 DB 7CH 9 ‏)9و2‎ ‎28 1 128 6 DB 77H OFFSET: EQU a2 For Example ORG 5003. LOOK: LD 4 ADDAOFFSET LD L.A £D A(HL) RET 0116 22 122121:09 4 DB 7 DB 3 DB “FH DB 4

صفحه 62:
ایجاد تاخیر های [مانی با نرم افزار ۱- [یر برنامه تافیر کوتاه مدت ۲- زیر برنامه تافیر میان مدت ۳- زیر برنامه تاخیر بلند مدت

صفحه 63:
۱- زیر برنامه تاخیر کوتاه مدت ۳ 016 1 ©, °SDELAY:£D BXXH * SLOOP :DJNZSLOOP ° RET 63

صفحه 64:
۲- زیر برنامه تاخیر میان مدت 028 3 * LDELAY :LD 1 5” * (MELAV7 :DECBC LD AB ORAC JR NZ,LDELAY RET 64

صفحه 65:
۳- زیر برنامه تاخیر بلند مدت 5 0116 03 * VEDELAY :£D DEXXXXH ° VEDELAY7:CALLLIDELAY ٠ DEC DE 5 LD AD ° OR AE © [3 5 RET 65

صفحه 66:
زیر برنامه تاخیر بلند مدت (ادامه) ٠ ORG 300H{ ° LDELAY :£LD BCXXXXH ۰ LDELAY7 :DECBC _° £D AB ° OR AC ° JR NZ,LDELAY? ۳ RET 66

صفحه 67:
ارتباط دهى موازى 5 وسايل و(ودى /خروهجى

صفحه 68:
۱- نرم افزار فواندن کلیدفشاری. لرزش گیری و افزایش عدد دودوئی بر روی نمایشکر ۶۳ [22 ° START:IN A(PORTB) 4 ° JR NCSTART ۰ ° IN A(PORTB) ۰ RRCA * JR NCSTART 68

صفحه 69:
(ادامه) * START2:IN A(PORTB) ° RRCA ۱ ٠ ‏لتتددى ور‎ ۶ 0 * IN A(PORTB) ۰ RRCA ° JRCSTART2 69

صفحه 70:
ie ‏(ادامه)‎ IN A(PORTA) INCA OUT (PORTA),A JR START * BOUNCE :LD 6 * BOUNCE?:DEC BC © LD AB ° OR AC S ‏لا[‎ 7 ۶ RET 70

صفحه 71:
۲- زیر برنامه ای برای خواندن یک کاراکتر از صفمه کلید * 8115 91 4 ° READKEY :IN A(PORTC) * AND ABITS * JR ZREADKEY ° IN A(PORTA) ° “RET

صفحه 72:
۳- زیر برنامه ای برای ارسال محتویات ثبات‌ظ به ‎Male‏ 28111 ‏ميو‎ 036 PRINT:IN A(PORTC) ANDABIT# IRZPRINT LDAB OUT(PORTE)A £D A,000010008 OUT(COMMAND)A ۲ 8 OUT(COMMAND)A ‘RET 72

صفحه 73:
۴- زیر برنامه ای که ممتویات ثبات ۱/8 به گذرگاه دو طرفه ارسال میکند مد پم موی * تیف و هعفد 7 طايمد همهي يور ویو »ور كع 73

صفحه 74:
۵- زیر برنامه ای برای مرور صفمه کلید ماتریسی *SCAN:CALL CHECK ° JR NZSCAN 7° CALL DELAY ~*~ CALL CHECK ۶ JR NZSCAN

صفحه 75:
(ادامه) ° SCAN?7:CALL CHECK JR ZSCAN CALL DELAY CALL CHECK 31 7

صفحه 76:
(ادامه) DECC ‏هر‎ AC ADDAA ADDAA LD CA LD BoFFH IN A(PORTB) SCAN2:RRCA INCB JR CSCAN2 LD AB ADDAC RET 76

صفحه 77:
(ادامه) CHECK: £D C5 LD BoFEst CHECK :£D AB OUT(PORTA)A RECA LD BA IN A(PORTB) INCA RET NZ DECC IR NZ,CHECKs RET 77

صفحه 78:
(ادامه) ١ * ۳۳۲۶۵۵ ‏ظ۶:‎ 34 * SDELAY7 :DECDE "* £D AD ° ORAE * 1 2۳۸ ° 7

صفحه 79:
۷- زیر برنامه ای برای ارسال داده ها به نمایشگرهای هفت قسمتى * INIT: LD HLRAM SSD Ce ° INIT? : 2۵ 009 * 2 INCHL f° DECC ° JR NZINIT# * LD AOEEH ۶ LD (POINT) A ۶ £D ACOH ° ‏م05 هر‎ 79

صفحه 80:
LD AL INCA LD (POS),A SUBA OSS JR NZDISPLAYs £D (P0S),A DISPLAY? POP HL POPAF REIN ORG 200036 RAMDS & 80 1 2 LD A(POS) LD HLRAM LD LA LD A(HL) OUT (PORTA)A

صفحه 81:
۷- زیر برنامه سرویس وقفه برای ارسال یک بایت از طریق درگاه 2 به چاپکر * 1223065 :۶۵ 2۵ ۶ ‏هبو ور‎ ۶ 2 6 9 ۰ = £D (COUNT),HL . ۶ ‏ور‎ Aor ° ‏وهی ور‎ ۶ ‏ور‎ AoDH ° OUT(COMMAND)A 2 RET 81

صفحه 82:
(ادامه) INCH LD (ADDR) HL 2X DE ME DEC HE £D (COUN SE LD AM ORAL IR NZINTRA LD Avot LD (FLAG)A £D ‏مد‎ OUT(COMMAND) A. INTRs:POPDE POP HE POPAF REIN 82 LD ACAH OUT (COMMAND)A. LD AOBH OUT (COMMAND)A

صفحه 83:
ارتباما دهی سری ۳ وسايل ورودى /خروجى ‏

صفحه 84:
آماده سازی 8227/2در حالت ناهمگام 130112:12 4 OUT(COMMAND)A. OUT(COMMAND)A. OUT (COMMAND) A LD Agost OUT(COMMAND)A ۶ 1 ۶ OUT(COMMAND)A ۲ 8 ۶ OUT (COMMAND) A 84

صفحه 85:
آماده سازی ‎)38257A‏ حالت همگام ۰ ‏ومد مور‎ + ourcommanDy a OUTKCOMNANDIA OUTCOMMANDIA مد هد جد اتحاحاد0 )كلاه ‎٠ ١‏ Set tp asorss0003 * ourtcommanma یو هر + ourcommanDya ۰ parse OUTCOMMANDI-A £D ۵ OUTCOMMANDIA 85

صفحه 86:
۱- زیر برنامه ای برای ارسال محتوای ثبات ظبه خط ارسال سریال 525/2 * 02/13/1211 11 i ۶ DATA 10 * SEND :1N A(COMMAND) 5 RRCA 0 لا[ 5 . LD AB ° OUT(DATA),A ° RET 86

صفحه 87:
B ‏زیر برنامه ای برای دریافت اطلاعات از طریق خط دریافت سریال 925/2 به ثبات‎ -P موه ۰ لصيس 2 8 gees 87

صفحه 88:
Pentium(r) 4 Processor Architectural Block Diagram ee een ۳ Micro Code ROM/ Micro Instruction Sequencer

صفحه 89:

جهت مطالعه ادامه متن، فایل را دریافت نمایید.
34,000 تومان