Cấp máy quy ước
lượt xem 5
download
Các thao tác nhị nguyên là các thao tác kết hợp 2 toán hạng để sinh ra một kết quả hoặc bao gồm các chỉ thị đại số logoc. Các chỉ thị logic thông thường AND, OR...Các thao tác đơn đơn nguyên có một toán hạng và tạo ra kết quả...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Cấp máy quy ước
- Caáp maùy quy öôùc Caùc loaïi chæ thò Caùc thao taùc nhò nguyeân Caùc thao taùc nhò nguyeân laø caùc thao taùc keát hôïp 2 toaùn haïng ñeå sinh - ra moät keát quaû hoaëc bao goàm caùc chæ thò ñaïi soá logic Caùc chæ thò logic thoâng thöôøng: AND, OR,... - AND: OR: - Thöôøng söû duïng ñeå trích caùc bit - Thöôøng söû duïng keát hôïp caùc bit ra khoûi töø vaøo trong moät töø - Tính tích logic töøng ñoái soá - Tính toång logic töøng ñoái soá Caàn taùch kyù töï thöù 2 ra khoûi 3 kyù töï kia: Caàn thay ñoåi 8 bits cöïc phaûi: 10110111 10111100 11011011 10001011 A 10110111 10111100 11010100 10001011 A 00000000 11111111 00000000 00000000 B (maët naï) 11111111 11111111 11111111 00000000 B (maët naï) 00000000 10111100 00000000 00000000 A AND B 10110111 10111100 11010100 00000000 A AND B 00000000 00000000 00000000 01010111 C Dòch phaûi 16 bits: 00000000 00000000 00000000 10111100 10110111 10111100 11010100 01010111 (A AND B) OR C
- Caáp maùy quy öôùc Caùc loaïi chæ thò Caùc thao taùc ñôn nguyeân Caùc thao taùc ñôn nguyeân coù moät toaùn haïng vaø taïo ra keát quaû - Caùc thao taùc thoâng thöôøng: Dòch/Quay moät töø - Chæ thò dòch: Caùc bits chuyeån sang Chæ thò quay: Caùc bits ñöôïc ñaåy ra traùi/phaûi n bit. Caùc bits dòch ra khoûi khoûi ñaàu naøy nhöng xuaát hieän ôû ñaàu ñaàu cuûa töø thì bò maát kia 00000000 00000000 00000000 01110011 A 00000000 00000000 00000000 01110011 A A dòch phaûi 2 bit: A quay phaûi 2 bit: 00000000 00000000 00000000 00011100 A 11000000 00000000 00000000 00011100 A - ÖÙng duïng cho caùc thao taùc nhaân - ÖÙng duïng: vaø chia caùc soá luõy thöøa 2: Dòch • Kieåm tra caùc bit trong moät töø: traùi/phaûi k bit soá ban ñaàu baèng caùch ñaët töøng bit leân bit daáu nhaân/chia 2k • Keát hôïp/taùch chuoãi bits 18 x n = 16 x n + 2 x n = 24 x n + 21 x n 24 x n: dòch n laàn 4 bit sang traùi 21 x n: dòch n laàn 1 bit sang traùi
- Caáp maùy quy öôùc Caùc loaïi chæ thò - Caùc chæ thò di chuyeån döõ lieäu - Sao cheùp döõ lieäu töø nôi naøy sang nôi khaùc - Thoâng thöôøng döõ lieäu ñöôïc truy xuaát/caát giöõ taïi: Töø nhôù/Thanh ghi/ Ngaên xeáp K. daáu Coù daáu (Buø 2) - Caùc chæ thò so saùnh vaø nhaûy coù ñieàu kieän 000 100 (nhoû nhaát -4) 001 101 Kieåm tra ñieàu kieän vaø nhaûy 010 110 - 011 111 ñeán ñòa chæ boä nhôù cuï theå 100 000 neáu ñieàu kieän thoûa 101 001 110 010 111 011 (lôùn nhaát +3) 011 coù lôùn hôn 100 khoâng? - Caùc chæ thò goïi thuû tuïc - Caùc chæ thò ñieàu khieån voøng laëp
- Caáp maùy quy öôùc Caùc loaïi chæ thò - Caùc chæ thò nhập/xuất 1. Phöông phaùp nhaäp/xuaát theo chöông trình: - Moät chæ thò nhaäp/ xuaát töông öùng moät thieát bò I/O 1. CPU laëp vieäc ñoïc traïng thaùi thanh ghi traïng 1. CPU laëp vieäc thaùi, ñôïi bit 7 ñoïc traïng thaùi thieát laäp =1 khi coù 1 kyù töï =1 khi coù 1 kyù töï baøn phím, ñôïi bit 7 thieát laäp 2. Bit 7 thieát laäp phaàn meàm Display status (traïng thaùi) Keyboard status (trạng thaùi) ghi 1 kyù töï leân thanh ghi döõ lieäu 2. Khi bit 7 thieát Character received Character to display vaø truyeàn leân laäp, chöông Display buffer (döõ lieäu) Keyboard buffer (döõ lieäu) maøn hình trình ñoïc thanh Bit 7 huûy ghi ñeäm ñeå nhaän Thieát bò ñaàu cuoái coù 4 thanh ghi 1 byte: thieát laäp kyø töï vaø bit 7 2 thanh ghi nhaäp vaø 2 thanh ghi xuaát huûy thieát laäp Hieän töôïng “ñôïi baän” (busy waiting): CPU tieâu phí thôøi gian vaøo voøng laëp ñeå ñôïi thieát bò saün saøng gaây laõng phí, hao toán taøi nguyeân, chaäm heä thoáng
- Caáp maùy quy öôùc Caùc loaïi chæ thò - Caùc chæ thò nhập/xuất 2. Phöông phaùp nhaäp/xuaát theo chöông trình coù xöû lyù ngaét: - Thieát laäp bit cho pheùp ngaét trong thanh ghi cuûa thieát bò 1. CPU loaïi boû vieäc laëp ñoïc =1 khi coù 1 kyù töï traïng thaùi thanh =1 khi coù 1 kyù töï 1. CPU loaïi boû ghi traïng thaùi vieäc laëp ñoïc Bit ngaét (=1) Bit ngaét (=1) traïng thaùi baøn phím 2. Bit 7 thieát laäp Bit ngaét thieát Display status (traïng thaùi) Keyboard status (trạng thaùi) laäp CPU ñoïc thanh ghi ñeäm 2. Khi bit 7 thieát Character received Character to display ñeå nhaän kyø töï vaø laäp Bit ngaét Display buffer (döõ lieäu) Keyboard buffer (döõ lieäu) truyeàn leân maøn thieát laäp CPU hình ñoïc thanh ghi Thieát bò ñaàu cuoái coù 4 thanh ghi 1 byte: bit 7 vaø bit ñeäm ñeå nhaän kyø 2 thanh ghi nhaäp vaø 2 thanh ghi xuaát ngaét huûy thieát töï bit 7 vaø bit laäp ngaét huûy thieát laäp - Loaïi boû hieän töôïng “ñôïi baän” (busy waiting) - Caàn 1 ngaét cho moãi kyù töï quaù trình xöû lyù ngaét quaù toán keùm
- Caáp maùy quy öôùc Caùc loaïi chæ thò - Caùc chæ thò nhập/xuất 3. Phöông phaùp nhaäp/xuaát tröïc tieáp boä nhôù DMA (Direct Memory Access: 1. Ñeå ghi moät khoái 32 bit töø ñòa chæ oâ nhôù 100 tôùi I/O, DMA ñöôïc ghi caùc soá 100,32,4,1 2. DMA göûi qua bus yeâu caàu ñoïc byte 100 töø boä nhôù Ñòa chæ boä nhôù ñöôïc ñoïc hoaëc ghi Ñeám soá byte ñöôïc göûi ñi Thieát bò Soá cuûa thieát bò ñaàu cuoái DMA MEMORY Höôùng: döõ lieäu ñoïc hay ghi vaøo 100 32 I/O Ñieàu khieån 100 4 Read=0 1 Write=1 Bus 4. Sau khi hoaøn taát, DMA taêng ñòa chæ leân 1 vaø giaûm ñeám xuoáng 1. 3. Boä ñieàu khieån göûi yeâu caàu tôùi Neáu thanh ghi ñeám>0 thì tieáp tuïc IO 4 vaø ghi byte vaøo I/O böôùc 1
- Caáp maùy quy öôùc Chip 8088 (Intel) AX duøng cho caùc pheùp toaùn soá hoïc (Primary accumulator) Hệ thoáng thanh ghi 8088 BX duøng chöùa con troû troû ñeán boä nhôù (Pointer) 16 bits CX chöùa soá ñeám trong caùc chæ thò laëp (Loops) AX AH AL DX môû roäng AX, hoã trôï pheùp nhaân vaø chia BH BL BX CH CL CX SI vaø DI duøng trong caùc thao taùc chuoãi. SI xaùc ñònh ñòa chæ DH DL DX nguoàn trong segment döõ lieäu vaø DI xaùc ñònh ñòa chæ ñích SI trong segment môû roäng DI BP vaø SP duøng ñòa chæ hoùa stack. BP troû tôùi ñaùy vaø SP troû BP tôùi ñónh cuûa khung stack SP CS DS 4 thanh ghi segment: maõ (CS-Code), döõ lieäu (DS-Data), SS ngaên xeáp (SS-Stack) vaø môû roäng (ES-Extra) ES Con troû chöông trình, troû tôùi chæ thò keá tieáp seõ thöïc hieän IP FLAGS Theo doõi ñieàu kieän/traïng thaùi chæ thò
- Caáp maùy quy öôùc Taäp caùc chæ thò thöôøng duøng cuûa 8088 Nhoùm caùc chæ thò di chuyeån döõ lieäu Trước lệnh MOV Sau lệnh MOV 1. MOV dst,src 0006 0008 Di chuyeån noäi dung src ñeán dst. * Taùc ñoäng côø: AX AX 0008 0008 Ví duï: MOV AX,WORD1 WORD1 WORD1 Trước lệnh XCHG Sau lệnh XCHG 2. XCHG dst1,dst2 0006 0008 Hoaùn chuyeån noäi dung dst1 vaø dst2 * Taùc ñoäng côø: AX AX 0008 0006 Ví duï: XCHG AX,WORD1 WORD1 WORD1
- Caáp maùy quy öôùc Taäp caùc chæ thò thöôøng duøng cuûa 8088 Nhoùm caùc chæ thò di chuyeån döõ lieäu 3. PUSH src 4. POP dst SP taêng leân 1 vaø noäi dung löu leân stack. SP giaûm xuoáng 1 vaø noäi dung laáy töø stack. * Taùc ñoäng côø: * Taùc ñoäng côø: Ví duï: PUSH BX Ví duï: POP BX 5. LEA dst,src Lấy địa chỉ tương đối của src sao cheùp qua dst. * Taùc ñoäng côø: Ví duï: LEA DX,MSG
- Caáp maùy quy öôùc Taäp caùc chæ thò thöôøng duøng cuûa 8088 Nhoùm caùc chæ thò di chuyeån döõ lieäu 7. LES dst,src 6. LDS dst,src Naïp 4 byte boä nhôù con troû vaøo ES vaø moät Naïp 4 byte boä nhôù con troû vaøo DS vaø moät thanh ghi thanh ghi. * Taùc ñoäng côø: * Taùc ñoäng côø: Ví duï: LES BX,[1000h] Ví duï: LDS BX,[1000h] ;BX [1001h,1000h] ;BX [1001h,1000h] ;ES [1003h,1002h] ;DS [1003h,1002h]
- Caáp maùy quy öôùc Taäp caùc chæ thò thöôøng duøng cuûa 8088 Nhoùm caùc chæ thò thöïc hieän pheùp tính soá hoïc Trước lệnh ADD Sau lệnh ADD 8. ADD dst, src Coäng toaùn haïng src vaøo toaùn haïng 0006 0006 dst, keát quaû löu vaøo dst. BX BX * Taùc ñoäng côø: 0008 0014 Ví duï: ADD AX, BX AX AX 9. SUB dst, src Trước lệnh SUB Sau lệnh SUB Tröø toaùn haïng dst cho toaùn haïng src, 0006 0006 keát quaû löu vaøo dst. AX AX * Taùc ñoäng côø: 0008 0002 Ví duï: SUB BX,AX BX BX
- Caáp maùy quy öôùc Taäp caùc chæ thò thöôøng duøng cuûa 8088 Nhoùm caùc chæ thò thöïc hieän pheùp tính soá hoïc 10. MUL src Nhaân 2 soá khoâng daáu 8 bit hoaëc 16 bit. - 8 bit : thực hiện nhaân AL với src, kết quả cất trong AX. - 16 bit : thực hiện nhaân AX với src, kết quả cất trong DX (16 bit cao) vaø AX (16 bit thaáp) * Taùc ñoäng côø: Ví duï: Nếu AL=5, CH=4, sau khi thực hiện lệnh: MUL CH AX = AL*CH = 0014h. 11. IMUL src Nhaân 2 soá coù daáu 8 bit hoaëc 16 bit töông töï leänh MUL * Taùc ñoäng côø:
- Caáp maùy quy öôùc Taäp caùc chæ thò thöôøng duøng cuûa 8088 Nhoùm caùc chæ thò thöïc hieän pheùp tính soá hoïc 12. DIV src Chia 2 soá khoâng daáu 8 bit hoaëc 16 bit. - 8 bit : thực hiện chia AX với src, kết quả cất trong AL, soá döï caát trong AH - 16 bit : thực hiện chia AX/DX với src, kết quả cất trong AX vaø soá dö caát trong DX * Taùc ñoäng côø: 13. IDIV src Chia 2 soá coù daáu 8 bit hoaëc 16 bit töông töï leänh DIV * Taùc ñoäng côø: 14. ADC dst,src Cộng toaùn hạng dst với toaùn hạng src với cờ nhớ. Kết quả cất vaøo toaùn hạng đích. * Taùc ñoäng côø: Ví duï: ADC BX,AX ; BX ← BX + AX + CF
- Caáp maùy quy öôùc Taäp caùc chæ thò thöôøng duøng cuûa 8088 Nhoùm caùc chæ thò thöïc hieän pheùp tính soá hoïc 15. SBB dst,src Tröø toaùn hạng dst với toaùn hạng src với cờ nhớ. Kết quả cất vaøo toaùn hạng đích. * Taùc ñoäng côø: Ví duï: SBB SI,BX ; SI ← SI - BX -CF 16. NEG dst Laáy buø 2 toaùn haïng ñích. * Taùc ñoäng côø: Ví duï: NEG AX ; AX ← (Buø 2) AX
- Caáp maùy quy öôùc Taäp caùc chæ thò thöôøng duøng cuûa 8088 Nhoùm caùc chæ thò thöïc hieän pheùp tính soá hoïc 17. INC dst Coäng 1 vaøo toaùn haïng ñích. * Taùc ñoäng côø: Ví duï: INC CH ; CH ← CH+1 18. DEC dst Giaûm 1 giaù trò toaùn haïng ñích. * Taùc ñoäng côø: Ví duï: DEC CH ; CH ← CH-1
- Caáp maùy quy öôùc Taäp caùc chæ thò thöôøng duøng cuûa 8088 Nhoùm caùc chæ thò ñaïi soá logic vaø dòch/quay 19. AND dst,src 20. OR dst,src VAØ luaän lyù. Xoùa côø nhôù veà 0 HOAËC luaän lyù. Xoùa côø nhôù veà 0 * Taùc ñoäng côø: * Taùc ñoäng côø: Ví duï: AND AX,BX Ví duï: OR AX,BX 0101 0101 AND 0 0 1 1 OR 0 0 1 1 0001 0111 21. XOR dst,src 22. NOT dst HOAËC NGOAÏI luaän lyù. Xoùa côø nhôù veà 0 BUØ luaän lyù. * Taùc ñoäng côø: * Taùc ñoäng côø: Ví duï: XOR AX,BX Ví duï: NOT AL 0101 NOT 0011 XOR 0011 1100 0110
- Caáp maùy quy öôùc Taäp caùc chæ thò thöôøng duøng cuûa 8088 Nhoùm caùc chæ thò kieåm tra vaø so saùnh: 23. TST srt1,srt2 VAØ luaän lyù giöõa 2 toaùn haïng, khoâng giöõ keát quaû, chæ xaùc laäp côø (xoùa côø nhôù vaø côø traøn veà 0). Thöôøng duøng ñeå kieåm tra bit, khi ñoù src1 laø maët naï. * Taùc ñoäng côø: Ví duï: TEST DX,1 ; kiểm tra bit 0 24. CMP srt1,srt2 So saùnh giöõa 2 toaùn töû baèng caùch laáy toaùn töû ñích tröø ñi toaùn töû nguoànï. * Taùc ñoäng côø: Ví duï: CMP AL,8 ; AL-8
- Caáp maùy quy öôùc Taäp caùc chæ thò thöôøng duøng cuûa 8088 Nhoùm caùc chæ thò thöïc hieän nhaûy: 25. JMP addr Nhaûy ñeán ñòa chæ addr. * Taùc ñoäng côø: Ví duï: JMP 0F008h ; nhaûy ñeán 0F008h 26. JCXZ addr Nhaûy ñeán ñòa chæ addr neáu CX=0 * Taùc ñoäng côø: Ví duï: JCXZ 0F008h ; nhaûy ñeán 0F008h neáu CX=0 27. CALL addr Goïi chöông trình con taïi ñòa chæ addr * Taùc ñoäng côø: Ví duï: CALL 0F008h
- Caáp maùy quy öôùc Taäp caùc chæ thò thöôøng duøng cuûa 8088 Nhoùm caùc chæ thò thöïc hieän nhaûy: 28. RET Duøng ñeå keát thuùc moät chöông trình con. * Taùc ñoäng côø: 29. IRET Duøng ñeå keát thuùc chöông trình con phuïc vuï ngaét * Taùc ñoäng côø: 30. LOOP Laëp khoâng ñieàu kieän, CX giöõa soá laàn laëp, CX giaûm sau moãi laàn laëp * Taùc ñoäng côø: Ví duï: MOV CX,10 Nhan: LOOP Nhan ; laëp 10 laàn leänh LOOP
- Caáp maùy quy öôùc Taäp caùc chæ thò thöôøng duøng cuûa 8088 Nhoùm caùc chæ thò thöïc hieän nhaûy: 31. LOOPE/LOOPZ Laëp neáu baèng/baèng khoâng, CX giaûm sau soá laàn laëp * Taùc ñoäng côø: 32. LOOPNE/LOOPNZ Laëp neáu khoâng baèng/khoâng baèng khoâng, CX giaûm sau soá laàn laëp * Taùc ñoäng côø: 33. INT addr Ngaét quaõng meàm. Goïi ñeán moät chöông trình conñaëc bieät goïi laø chöông trình phuïc vuï ngaét quaõng * Taùc ñoäng côø: Ví duï: INT 21h ; Goïi haøm 21h DOS
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Tiểu luận mạng máy tính: Giao thức X.25
56 p | 370 | 94
-
NGÔN NGỮ LẬP TRÌNH
34 p | 106 | 18
-
Bài giảng Kiến trúc máy tính - Chương 4: Bộ xử lý (the processor)
69 p | 212 | 15
-
5 cách ‘hô biến’ website cá nhân thành ‘máy bán hàng’
3 p | 87 | 14
-
Cấp vi lập trình
9 p | 83 | 8
-
5 kinh nghiệm quý giá phát triển web 2.0
3 p | 64 | 6
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn