صفحه 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: