intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Quá trình hình thành giáo trình viết từ ngôn ngữ gợi nhớ sang mã máy tại những lệnh jump và call p4

Chia sẻ: Defwsdg Sdgsg | Ngày: | Loại File: PDF | Số trang:10

90
lượt xem
11
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'quá trình hình thành giáo trình viết từ ngôn ngữ gợi nhớ sang mã máy tại những lệnh jump và call p4', khoa học xã hội, ngôn ngữ học phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Quá trình hình thành giáo trình viết từ ngôn ngữ gợi nhớ sang mã máy tại những lệnh jump và call p4

  1. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu 34 LUAÂÄN VAÊN TOÁT NGHIEÄP to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k I. ÑOÂI NEÙT VEÀ NGOÂN NGÖÕ C: I.1. Nguoàn goác: C ñöôïc phaùt minh vaø caøi ñaët ñaàu tieân bôûi Dennis Ritchie chaïy treân heä ñieàu haønh Unix, ñöôïc Martin Richards phaùt trieån trong thaäp nieân 70. C söû duïng chuaån ANSI ñöôïc ñeà nghò laàn cuoái cuøng vaøo naêm 1989. I.2. C laø ngoân ngöõ baäc trung: Ñöôïc xem laø ngoân ngöõ baäc trung vì C toå hôïp nhöõng thaønh phaàn toát nhaát cuûa caùc ngoân ngöõ baäc cao vôùi söï ñieàu khieån vaø tính linh hoaït cuûa ngoân ngöõ Assembly. C cho pheùp thao taùc treân caùc bit, caùc byte vaø caùc ñòa chæ – nhöõng phaàn töû cô baûn vôùi caùc chöùc naêng cuûa maùy tính, maõ cuûa chöông trình C cuõng mang tính khaû chuyeån. I.3. C laø ngoân ngöõ cuûa laäp trình vieân: C ñöôïc caùc laäp trình vieân laøm vieäc thaät söï taïo ra, thuùc ñaåy vaø kieåm tra, ñeå roài C laïi mang veà cho hoï nhöõng gì hoï mong muoán: ít haïn cheá, ít lôøi phaøn naøn, caùc caáu truùc khoái, caùc haøm ñôn leû, vaø moât taäp ñoùng kín nhöõng töø khoùa. II. CAÙC PHÖÔNG PHAÙP LAÄP TRÌNH: II.1. Phöông phaùp laäp trình leänh: Chöông trình laø moät daõy caùc leänh.  Laäp trình laø xaùc ñònh caùc leänh cuøng vôùi thöù töï caùc leänh ñoù.  Phöông phaùp naøy chæ coù giaù trò vôùi ch öông trình leänh ( < 100  leänh). II.2. Phöông phaùp laäp trình thuû tuïc: Chöông trình laø moät heä thoáng caùc thuû tuïc vaø haøm, moãi thuû tuïc  hay haøm laø moät daõy caùc leänh. Laäp trình laø ñi xaùc ñònh nhöõng thuû vaø haøm, vaø xaùc ñònh caùc  leänh beân tring thuû tuïc vaø haøm ñoù. Phöông phaùp naøy tieán boä hôn phöông phaùp treân.  II.3. Phöông phaùp laäp trình ñôn theå: Chöông trình laø moät heä thoâng caùc ñôn theå (module).  Moãi ñôn theå laø moät heä thoáng thuû tuïc, haøm coù cuøng yù nghóa naøo  ñoù. Moãi thuû tuïc vaø haøm laø moät daõy caùc leänh. Caùc ñôn theå coù ñöôïc löu tröõ vaø bieân dòch phaân caùch, neân deã  daøng laép gheùp. Tuy nhieân phöông phaùp naøy coøn thieáu töï nhieân, ngaøi ra neáu chöông trình quaù roäng vaø quaù saâu thì khoâng theå quaûn lyù ñöôïc. II.4. Phöông phaùp laäp trình höôùng ñoái töôïng: Chöông trình laø moät heä thoáng caùc ñoái töôïng, caùc ñoái töôïng  trong thöïc teá ñöôïc dieãn taû baèng ngoân ngöõ tin hoïc. Laäp trình laø ñi xaùc ñònh nhöõng ñoái töôïng cuøng nhöõng quan heä  cuûa chuùng. Tính töï nhieân cuûa phöông phaùp naøy laøm noù trôû neân sinh ñoäng,  moãi ñoái töôïng coù thuoäc tính vaø haønh ñoäng rieâng nhö trong thöïc teá do ñoù deã hình dung, deã quaûn lyù. Ngoaøi ra, nhôø döïa treân caùc ñoái töôïng neân tính tieán hoùa vaø môû roäng raát cao.
  2. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu 35 LUAÂÄN VAÊN TOÁT NGHIEÄP to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k Trong phaàn vieát chöông trình giao dieän vi tính, ngöôøi vieát ñaõ choïn phöông phaùp laäp trình höôùng ñoái töông. Nhôø nhöõng öu ñieåm treân, phöông phaùp naøy cho pheùp boå sung moät caùch deã daøng, taïo ñieàu kieän thuaän lôïi cho vieäc boå sung sau naøy neáu caàn. III. PHÖÔNG PHAÙP LAÄP TRÌNH HÖÔÙNG ÑOÁI TÖÔÏNG TRONG C III.1. Caùc khaùi nieäm: Theá giôùi thöïc Phöông phaùp laäp trình Ngoân ngöõ laäp trình Ñoái töôïng baát kyø trong theá Ñoái töôïng Bieán coù kieåu lôùp giôùi thöïc (töông töï kieåu caáu truùc) Khaùi nieän chung cuûa moät Lôùp ñoái töôïng Kieåu lôùp(Class-töông töï ñoái töông kieåu caáu truùc) Thuoäc tính ñöôïc quan taâm Thuoäc tính Thaønh phaàn döõ lieäu cuûa cuûa ñoái töôïng kieåu lôùp Khaû naêng coù theå thöïc hieän Haønh ñoäng Thuû tuïc, haøm cuûa kieåu lôùp cuûa moät ñoái töông III.2. Phöông phaùp: III.2.1. Xaùc ñònh caùc lôùp ñoái töôïng, quan heä qua caùc lôùp naøy (xaây döïng sô ñoà lôùp) III.2.2. Thieát keá caùc lôùp (bieåu dieãn treân maùy tính) Thaønh phaàn döõ lieäu (thuoäc tính).  Thaønh phaàn xöû lyù (haønh ñoäng).  III.2.3. Caøi ñaët caùc lôùp: Vieát haøm main() III.2.4. Thöû nghieäm. IV. Thöïc hieän vieát chöông trình DownLoad: IV.1. Yeâu caàu cuûa giao dieän:  Cho pheùp choïn file seõ truyeàn.  Baèng caùch goõ vaøo teân file  Baèng caùch click chuoät ñeå choïn  Xem tröôùc vuøng nhôù caàn thieát seõ söû duïng ôû RAM ôû Kit 8085  Choïn coång truyeàn.  Truyeàn file coù kieåm tra. IV.2. Choïn ngoân ngöõ laäp trình:  Choïn ngoân ngöõ C vieát ôû moâi tröôøng Dos  Lyù do: yeâu caàu thieát bò (maùy tính) khoâng cao, phuø hôïp kieán thöùc ngöôøi vieát.  Öu ñieåm: C laø moät coâng cuï laäp tình goïn nheï, chaïy nhanh, hieäu quaû vaø kheùp kín. Vì söû duïng C ôû moâi tröôøng Dos neân khoâng caàn phaûi kieåm soaùt caùc driver nhö neáu vieát ôû moâi tröôøng Windows. Ngoân ngöõ C cho pheùp truy caäp tröïc tieáp caùc port, deå daøng kieåm soaùt töøng bit döõ lieäu.  Khuyeát ñieåm: Vuøng nhôù troáng ôû moâi tröôøng Dos chæ coù 640Kbyte, vaø sau khi khôûi ñoäng xong (ôû maøn hình dos) thì chæ coøn laïi treân döôùi 400Kbyte, khoâng cho pheùp taïo moät giao dieän phöùc taïp. Ñoä phaân giaûi ôû cheá ñoä graph trong Dos khoâng theå so saùnh vôùi moâi tröôøng Windows.
  3. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu 36 LUAÂÄN VAÊN TOÁT NGHIEÄP to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k IV.3. Chöông trình Download: Danh saùch caùc lôùp: Teân lôùp Coâng duïng Button.hpp Taïo caùc nuùt nhaán, vaø chöùa caùc haønh ñoäng lieân quan Disklist.hpp Lieät keâ caùc oå ñóa trong maùy, vaø chöùa caùc haønh ñoäng lieân quan List.hpp Ñeå veõ baûng lieät keâ caùc thö muïc vaø file, vaø chöùa caùc haønh ñoäng lieân quan Mouse.h Chöùa caùc thao taùc veà chuoät Screen.h Chöùa caùc tham soá veà giao dieän maøn hình, vaø chöùa caùc haønh ñoäng lieân quan Textbox.hpp Veõ khung nhaäp lieäu (teân file, loaïi file,..) , vaø chöùa caùc haønh ñoäng lieân quan Xuat.hpp Chöùa caùc thao taùc, haønh ñoäng lieân quan ñeán truyeàn file Löu ñoà cuûa haøm main(): Begin InitGraphics() InitValues(…) InitScreen() InitMouse(…) S Khôûi taïo CT baùo loãi thaønh coâng Ñ Ñoùng cheá ñoä Mainpro() ñoà hoïa Hình 13: löu ñoà haøm Main() cuûa chöông trình Thoaùt closegraph() DownLoad. Giaûi thích löu ñoà: End
  4. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu 37 LUAÂÄN VAÊN TOÁT NGHIEÄP to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k  Chöông trình baét ñaàu ôû begin.  InitGraphisc():Khôûi taïo cheá ñoä ñoà hoïa, vì chöông trình naøy coù söû duïng maøn hình ôû cheá ñoä ñoà hoïa trong moâi tröôøng Dos. Neáu khôûi taïo khoâng thaønh coâng thì thoâng baùo loåi khôûi taïo vaø thoaùt khoûi chöông trình.  InitValues(…): haøm naøy coøn khôûi taïo caùc giaù trò ban ñaàu cho maøn hình: kích thöôùc cöûa soå, kích thöôùc kyù töï.  InitScreen(): Veõ maøn hình vôùi caùc giaù trò ñaõ khôûi taïo  InitMouse(): Khôûi taïo chuoät.  Khôûi taïo thaønh coâng: kieåm tra, neáu khôûi ñoäng chuoät thaønh coâng thì tieáp tuïc coâng vieäc, neáu khoâng thaønh coâng thì xuaát ra thoâng baùo loãi vaø thoaùt khoûi chöông trình.  MainPro laø chöông trình quaûn lyù moïi thao taùc cuûa toaøn boä chöông trình, töø caùc thao taùc nhaäp xuaát ñeán caùc thao taùc löïa choïn caùc tuøy choïn.  Closegraph(): Ñoùng cheá ñoä ñoà hoïatröôùc khi thoaùt khoûi chöông trình.  End: keát thuùc chöông trình. Haøm Main() naøy ñöôïc vieát baèng ngoân ngöõ C : void main(void) { InitGraphics(); InitValues("Chuong trinh truyen du lieu ra RAM"); InitScreen(); if (!InitMouse(&MainWindow.rViewPort)) { OutMessage("Mouse driver not found. Init mouse and return"); getch(); closegraph(); exit(1); } ShowMouse(); MainProgram(); closegraph(); } void main(void): void cho bieát raèng haøm main() khoâng traû veà moât giaù trò naøo, nghóa laø trong haøm main naøy khoâng coù leänh return() hoaëc leänh laø moät leänh return khoâng coù tham soâ. (void) cho bieát haøm main khoâng caàn ñoái soá ñöa vaøo. Löu ñoà haøm Mainpro(): Begin Khôûi taïo caùc giaù trò cho caùc oâ nhaäp text Khôûi taïo caùc giaù trò cho caùc nuùt choïn A
  5. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu 38 LUAÂÄN VAÊN TOÁT NGHIEÄP to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k A Xuaát caùc oâ nhaäp text ra maøn hình Xuaát caùc nuùt choïn ra maøn hình GetEvent() Goïi chöông trình Click vaøo nhaäp vaøo ñöôøng daãn oâ Open File Click Nuùt Goïi chöông trình pull down xuaát cöûa soå choïn file Xaùc ñònh Click nuùt Send file choïn Click nuùt Xaùc nhaän Exit thoaùt Truyeàn Return file Nhaán Esc Hình 14: Löu ñoà cuûa haøm MainPro(). Giaûi thích löu ñoàhaøm MainPro():
  6. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu 39 LUAÂÄN VAÊN TOÁT NGHIEÄP to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k  Khôûi taïo caùc giaù trò cho caùc oâ nhaäp text: treân maøn hình seõ coù khung cho pheùp goõ vaøo teân file, chöông trình con naøy seõ khôûi taïo caùc toïa ñoä, maøu chöõ cho text.  Khôûi taïo caùc giaù trò cho caùc nuùt choïn: cuõng gioáng nhö treân, nhöng ñoái vôùi caùc nuùt Send, Exit vaø nuùt Pulldown.  Xuaát caùc oâ nhaäp text ra maøn hình.  Xuaát caùc nuùt choïn ra maøn hình.  GetEvent: chöông trình con laán bieán coá chuoät. Bieán coá naøy chöùa caùc thoâng tin veà toïa ñoä chuoät, phím naøo cuûa chuoät ñöôïc click, thôøi gian click laàn cuoái, … ñeå xaùx ñònh caùc leänh keá tieáp caàn thöïc hieän.  Click vaøo oâ Open File: neáu bieán coá click chuoät xaåy ra taïi toïa ñoä cuûa cuûa oâ Open file thì keát quaû click vaøo oâ naøy laø TRUE, thöïc hieän chöông trình con nhaäp vaøo file caàn xuaát. Ngöôïc laïi thì boû qua.  Click vaøo nuùt Pulldown: neáu bieán coá click chuoät xaåy ra taïi toïa ñoä cuûa cuûa nuùt Pulldown thì keát quaû click vaøo oâ naøy laø TRUE, goïi chöông trình xuaát ra cöûa soå choïn File, ngöôïc laïi thì boû qua.  Click nuùt Send: neáu bieán coá click chuoät xaåy ra taïi toïa ñoä cuûa cuûa nuùt Send thì keát quaû click vaøo oâ naøy laø TRUE, thöïc hieän xaùc nhaän file xuaát ñaõ nhaäp vaøo chöa, neáu file xuaát chöa nhaäp vaøo thì baùo loãi vaø boû qua leänh Send, neáu file xuaát ñaõ coù teân roài thì xuaát file.  Click nuùt Exit: neáu bieán coá click chuoät xaåy ra taïi toïa ñoä cuûa cuûa nuùt Exit thì keát quaû click vaøo oâ naøy laø TRUE, thöïc hieän xaùc nhaän muoán thoaùt khoûi chöông trình, neáu xaùc nhaän ñuùng thì thoaùt, ngöôïc laïi thì boû qua leänh Exit.  Nhaán Esc: neáu ngöôøi duøng nhaán vaøo nuùt Esc treân baøn phím thì bieán coá Nhaán Esc seõ laø TRUE, thöïc hieän xaùc nhaän muoán thoaùt khoûi chöông trình, neáu xaùc nhaän ñuùng thì thoaùt, ngöôïc laïi thì boû qua leänh thoaùt baèng nuùt Esc. Sau ñoù, chöông trình laïi thöïc hieän voøng laëp taïi haøm laáy bieán coá chuoät cho tôùi khi coù thao taùc môùi. Giaû söû click chuoät vaøo oâ Open File, oâ naøy seõ ñoåi traïng thaùi, caùc kyùtöï trong oâ seõ ñoåi maøu baùo traïng thaùi chôø nhaäp, nhaäp vaøo moät teân fie coù phaàn môû roäng laø “prn” vôùi ñaày ñuû ñöôøng daãn, sau ñoù goõ phímEnter thì teân file seõ ñöôïc löu vaøo moät bieán toaøn cuïc, vaø caùc ñòa chæ ñaàu vaø ñòa chæ cuoái cuûa chöông trình ngoân ngöõ maùy seõ ñöôïc hieän leân ôû khung “Free memory request”, vaø moät doøng thoâng baøo beân döôùi baùo cho bieát click Send ñeå truyeàn file. Giaû söû tieáp tuïc click Send thì moät thoâng baùo xaùc nhaän seõ xuaát hieän, muoán xaùc nhaän coù chaéc laø ngöôøi duøng muoán truyeàn file khoâng. Neáu traû lôøi Ok thì chöông trình truyeàn file seõ ñöôïc goïi thi haønh. Sau ñaây laø löu ñoà cuûa chöông trình con thöïc hieän vieäc truyeàn File. Giaûi thích löu ñoà:  Goïi chöông trình caét file: chöông trình caét file thöïc chaát laø moät chöông trình con coù nhieäm vuï loïc ra nhöõng thoâng tin quan troïng trong file “x.prn” seõ ñöôïc truyeàn ñi, vaø löu chuùng trong moät file “x.tmp” chæ xuaát hieän trong khoaûng thôøi gian chöông trình ñang caét file. Sau ñoù file “x.tmp” naøy seõ bò xoaù ñi khi quaù trình truyeàn file hoaøn taát. Quaù trình truyeàn file phaûi söû duïng böôùc naøy ñeå caùc quaù trình baét tay giöõa maùy tính vaø Kit ñöôïc oån ñònh (thöïc nghieäm), vaø vieäc vieát chöông trình ñöôïc roõ raøng hôn.
  7. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu 40 LUAÂÄN VAÊN TOÁT NGHIEÄP to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k  Goïi chöông trình xuaát file: chöông trình naøy seõ ñoïc file coù teân laø “x.tmp” ñöôïc taïo töø chöông trình caét file. Chöông trình naøy seõ tuaàn töï ñoïc file, nhaän tín hieäu baét tay vaø gôûi döõ lieäu cho ñeán khi heát file.  Trong quaù trình truyeàn file, neáu coù söï coá, giaû söû khoâng baét tay ñöôïc vì lyù do naøo ñoù, thì chöôn trình seõ ñôïi, thôøi gian keùo daøi seõ coi nhö vieäc truyeàn file bi loãi, vaø thoâng baùo loãi seõ xuaát hieän.  Neáu truyeàn thaønh coâng thì thoâng baùo hoaøn taát coâng vieäc.  Return: Quay trôû veà chöông trình MainPro. Trong haøm MainPro(), caàn quan taâm chöông trình con truyeàn file. Begin Goïi chöông trình Caét file Goïi chöông trình xuaát file Sai Thaønh coâng Ñuùng Thoâng baùo hoaøn Thoâng baùo loãi taát coâng vieäc coâng vieäc Return. Hình 15: Löu ñoà chöông trình con coù nhieäm vuï truyeàn file. Trong phaàn naøy, ta quay laïi coâng vieäc caét file ñaõ giôùi thieäu ôû muïc III cuûa chöông V. Chöông trình con caét file laø ñeå taïo ra moät file taïm thôøi coù phaàn môû roäng .tmp. file naøy seõ laø moät file coù caáu truùc ñôn giaûn hôn file .prn raát nhieàu nhaèm ñeå giuùp cho vieäc truyeàn file theâm ñôn giaûn. Tröôùc heát haõy khaûo saùt moät file *.prn, file naøy ñöôïc dòch ra bôûi 1 chöông trình dòch Assembler. Trong chöông trình, byte leänh ñeàu tieân baét ñaàu ôû ñòa chæ 0000hex. Nhaän xeùt raèng moãi doøng leänh baét ñaàu bôû moät ñòa chæ boä nhôù, vaø lieàn sau ñòa chæ naøy laø moät daáu nhaùy ñôn, maø daáu nhaùy ñôn ñaàu tieân chæ xuaát hieän taïi ñòa chæ cuûa doøng leänh ñaàu tieân.  ñeå tìm ñòa chæ ñaàu tieân thì coù theå tìm daáu nhaùy ñôn ñaàu tieân.
  8. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu 41 LUAÂÄN VAÊN TOÁT NGHIEÄP to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k Coøn ñòa chæ cuoái cuøng laø ñòa chæ cuûa byte cuoái cuøng cuûa doøng leänh cuoái cuøng. Doøng leänh cuoái cuøng laø doøng leänh naèm gaàn töø “Macros” nhaát. Töø macros naøy cuõng laø töø macros duy nhaát.  caùch tìm ñòa chæ cuoái cuøng nhö sau:  Tìm töø Macros  Doø ngöôïc trôû veà phíc treân cho ñeán khi gaëp daáu nhaùy ñôn ñaàu tieân  Tieáp tuïc doø ngöôïc veà tröôùc, neáu trong voøng 10 kyù töï maø gaëp moât kyù töï xuoáng doøng thì thì daáu nhaùy ñôn vöøa roài naèm ngay sau doøng leänh cuoái cuøng.  Trong doøng leänh cuoái cuøng, tìm byte cuoái cuøng seõ tính ñöôïc ñòa chæ cuoái cuøng. Caùch tìm moät doøng leänh:  Khi gaëp moät daáu nhaùy ñôn, thì tìm moät kyù töï khaùc daáu nhaùy ñôn hoaëc khoaûng traéng.  Khi gaëp kyù töï ñaàu tieân, ñoù chính laø kyù töï ñaàu tieân cuûa byte leänh.  Neáu sau 2 kyù töï cuûa leänh laø moät khoaûng traéng thì 2 kyù töï vöøa roài chính laø moät maõ leänh.  Neáu sau 2 lyù töï cuûa moât byte leänh khoâng coù khoaûng traéng naøo, thì 2 kyù töï vöøa roài chính laø 2 cuûa 4 kyù töï baùo moät ñòa chæ.  Neáu sau 2 kyù töï tính töø luùc baét ñaàu moät leänh laø 2 khoaûng traéng trôû leân thì 2 byte vöøa roài laø 2 byte cuoái cuøng cuûa moät doøng leänh.  Baét ñaàu moät chu kyø môùi tìm doøng maõ leänh. Löu maõ leänh vaøo file *.tmp:  Ñaàu tieàn löu ñòa chæ ñaàu, ñòa chæ cuoái vaøo file.  Neáu gaëp maõ leänh (2 kyù töï) thì ghi tieáp vaøo file.  Neáu gaëp maõ ñòa chæ thì ñoåi choå 2 kyù töï sau vôùi 2 kyù töï tröôùc cuûa ñòa chæ.  Ñeán khi gaëp ñòa chæ cuoái cuøng thì ghi vaøo 2 kyù töï cuoái cuøng vaø ñoùng file. MACRO-80 3.4 01-Dec-80 PAGE 1 Org 0000h 0000' 3E 00 MVI A,00h 0002' 32 A001 STA 0A001h 0005' 3E 80 MVI A,80h 0007' 32 A001 STA 0A001h 000A' 3E 06 MVI A,06h 000C' 32 A000 STA 0A000h 000F' 76 HLT MACRO-80 3.4 01-Dec-80 PAGE S Macros: Symbols: No Fatal error(s) Coâng vieäc treân ñöôïc moâ taû baèng löu ñoà sau:
  9. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu 42 LUAÂÄN VAÊN TOÁT NGHIEÄP to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k Begin Nhaän ñòa chæ ñaàu B egin Nhaän ñòa chæ cuoái Sai Môû file nguoàn Busy=1 Ñuùng Môû file ñích Xuaát dlieäu ra bus Strobe=1 Tìm daáu “ ‘” Sai ACK=1 & Error=0 Ñoïc 2 kyù töï leänh Ñuùng AF=1 Xeùt kyù töï tieáp theo s Ñ a Ñoïc Error=0 Khoâng laø Ñoïc 2 kyù töï tieáp theo khoaûng traéng Ñuùng Thu nible cao S Löu 2 kyù töï sau AF=0 Ñ Laø moät Löu 2 kyù töï khoaûng traéng sai S Error=1 Ñ uùng S 2 Thu nible thaáp khoaûng traéng sai Xuaát 00 ra Ktra döõ lieäu data bus Ñ S >AF=0 Strobe=0 ñòa chæ cuoái Xuaát FF ra data bus Ñ AF=0 Strobe=0 Hình 16: Löu ñoà chöông trình con Caét file End Chuaån bò döõ lieäu Heát döõ lieäu keá tieáp sai Ñ uùng Return
  10. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu 44 LUAÂÄN VAÊN TOÁT NGHIEÄP to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k Sau khi caét file, moät file môùi ñaõ ñöôïc taïo ra. Chöông trình truyeàn file ñeán böôùc xuaát file. Dó nhieân tröôùc khi xuaát file cuõng caàn coù nhöõng thuû tuïc môû file, ñaët caùc möùc logic caàn thieát ñeå khôûi ñoäng coång: môû file hôïp leä, cho bit AF=0, strobe=0. Giaûi thích löu ñoà chöông trình xuaát file:  Tröôùc tieân, maùy tính xuaát strobe=0, AF=0 baèng chaùch xuaát ra port 37Ahex soá 03hex (xem laïi thanh ghi ñieàu khieån ôû muïc IV chöông IV);  Chöông trình xuaát baét ñaàu taïi begin.  Ñoïc Busy\ cho tôùi khi baèng [1]: ñôïi kit phaùt ra Busy=[0] baùo hieäu ñaõ saún saøng nhaän döõ lieäu.  Neáu nhaän ñöôïc Busy\=[1] thì böôùc xuaát döõ lieäu ñöôïc thöïc hieän, töùc laø luùc ñoù maùy tính ñoïc 2 kyù töï ñaàu tieân cuûa file .tmp vaø xuaát ra port 378 cuûa maùy tính.  Strobe=[1]: ñeå baùo cho kit bieát döõ lieäu ñaõ ñöôïc göûi ra port ñeå kit bieát maø ñoïc döõ lieäu vaøo.  ACK=[1] vaø Error=[0]: khi nhaändl xong kit seõ baùo ACK=[1], Error=0 ñeå baùo cho maùy tính bieát Kit seõ göûi döõ lieäu ñeå kieåm tra ñuùng hay sai.  AF=[1]: baùo cho Kit bieát maùy tính saún saøng nhaän döõ lieäu.  Maùy tính ñoïc bit Error cho tôùi khi Error = [0] ñeå bieát Kit ñaõ göûi veà döõ lieäu ñeå kieåm tra.  Thu Nible cao: Nhaän döõ lieäu ñeå kieåm tra.  Cho AF=[0]: ñaõ nhaän xong döõ lieäu.  Ñoïc Error cho tôùi khi Error=[1] ñeå bieát ñaõ coù döõ lieäu môùi.  Thu nible thaáp.  Kieåm tra döõ lieäu: maùy tính seõ phaûi gheùp noái nible cao vôùi nible thaáp laïi roài so saùnh vôùi döõ lieäu vöøa xuaát ra, neáu 2 döõ lieäu gioáng nhau thì keát quaû xuaát döõ lieäu seõ laø ñuùng. Maùy tính seõ xuaát ra soá FFhex ôû thanh ghi data ñeå baùo ñuùng, vaø xuaát AF=0 & strobe=0 ñeå baùo xuaát xong 1 byte döõ lieäu. Ngöôïc laïi thì xuaát 00hex ra thanh ghi data vaø xuaát AF=0, strobe =0 ñeå baùo keát quaû sai.  Neáu keát quaû sai thì quay laïi xuaát laï byte vöøa roài ñaõ xuaát.  Quay laïi töø ñaàu chöông trình xuaát döõ lieäu cho ñeán khi heát döõ lieäu. IV.4. Chöông trình nhaän döõ lieäu ôû Kit: Giaûi thích löu ñoà chöông trình nhaän döõ lieäu:  Chöông trình baét ñaàu taïi begin.  Tröôùc tieân phaûi khôûi taïo 8255 vôùi caùc cheá ñoä qui ñònh nhö sau:  Port A: nhaän döõ lieäu töø thanh ghi data theo ket noái phaàn cöùng.  Port B: xuaát traïng thaùi Kít traû veà maùy tính.  Port C: nhaän tín hieäu ñieàu khieån töø thanh ghi ñieàu khieån cuûa maùy tính.  Sau ñoù baùo cho maùy tính bieát traïng thaùi baän. Muïc ñích cuûa coâng vieäc naøy laø ñeå ñoàng boä thôøi ñieåm baét ñaàu chöông trình nhaän döõ lieäu vôùi chöông trình xuaát döõ lieäu töø maùy tính.  Reset bieán ñeám ñòa chæ ñaàu vaø cuoái, nôi ñaët vuøng döõ lieäu nhaän ñöôïc töø maùy tính.  Xuaát chöû Ready baùo cho ngöôøi söû duïng bieát traïng thaùi saún saøng nhaän döõ lieäu cuûa kit. Chôø ngöôøi söû duïng goõ phím Go.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2