與高級語言程序設計類似,用匯編語言進行程序設計時同樣按以下步驟進行。

  分析問題,建立數學模型;

  確定算法;

  編制程序">

国内精品伊人久久久影视 _久久亚洲AV午夜福利精品一区二_А√天堂资源中文最新版地址 _一区二区三区AV在线_免费一看一级毛片少妇丰满2_亚洲熟妇无码av叧娄本色_可播放的免费男同GAY_欲色欲色天天天WWW_丰满妇女强高潮18ⅩXXXHD

大學生之家,大學生資訊發布平臺
大學生之家

匯編子程序的設計方法

    發布時間:2018-09-17    閱讀:
    來源:大學生之家
4.4.1 程序設計概述

  與高級語言程序設計類似,用匯編語言進行程序設計時同樣按以下步驟進行。

  分析問題,建立數學模型;

  確定算法;

  編制程序流程圖;

  編寫程序;

  上機調試。

   初學程序設計者往往不習慣編制程序流程圖。實際上,在編寫程序前先構思程序流程圖,不僅能加速程序的編制,而且對程序在邏輯上的正確性也比較容易查找和 修改。有了程序流程圖,即可根據流程圖,逐條編寫程序。在編寫程序時要注意程序的基本格式,分清指令語句和偽指令的不同用途,正確使用各種尋址方式和指令 系統中的各種指令。

  有關源程序的基本結構做如下說明。

  (1)一個匯編語言源程序一般具有代碼段、數據段、堆棧段 和附加段。8086/8088/80286允許同時使用4個段。80386/80486除以上4個段外,還增加了FS和GS兩個附加數據段。在實際程序 中,只有代碼段是必需的,其他段都為可選。在實地址方式下,每個段的大小為小于等于64KB;在保護方式下,每個段最大長度允許4GB。

  (2)ASSUME偽指令只說明各段寄存器和邏輯段的關系,并沒有為段寄存器賦值。因此,在源程序中,除代碼段CS和堆棧段SS(在組合類型中選擇了STACK參數)外,其他定義的段寄存器由用戶在代碼段起始處用指令進行段基址的裝入。

  (3)每個源程序在代碼段中都必須含有返回DOS操作系統的指令語句,以保證程序執行結束后能自動返回DOS狀態。終止當前程序,使其正確返回DOS狀態有以下幾種:

  ①采用DOS功能與程序中的4CH功能調用

  這種方法在代碼段結束前加以下調用語句:

  MOV AH,4CH;功能號4CH→AH

  INT 21H;中斷調用

  ②采用標準序法,適用于定義為FAR的過程中

  此方式僅用于.COM格式的可執行文件。

  源程序編寫結束后,應當輸入計算機中進行調試。上機調試大致有以下四步:

  (1)使用編輯程序,將編寫好的程序送入計算機,在盤中建立一個擴展名為.ASM的文件;

  (2)使用宏匯編程序,將擴展名為.ASM的源程序匯編成目標程序,在盤上獲得擴展名為.OBJ的文件;

  (3)使用連接程序(LINK),將目標程序連接裝配成可執行文件,其擴展名為.EXE,并存于盤上;

  (4)程序可運行,如果運行中仍有問題,可使用調試程序(DEBUG)進行調試,直到問題全部解決、運行正確為止。

  只有在計算機上通過運行的程序,才能認為是正確的程序。

  4.4.2 分支程序設計

  計算機可根據不同條件進行邏輯判斷,從而選擇不同的程序流向。程序的流向是由CS和IP(EIP)決定的,當程序的轉移僅在同一段內進行時,只需修改偏移地址IP(EIP)的值;如果程序的轉移是在不同的段之間進行,則段基址CS和偏移地址IP(EIP)均需要修改。

  轉移指令分為無條件轉移指令和條件轉移指令。在設計分支程序前,請復習第3章有關轉移指令的內容,尤其是條件轉移指令。能否正確使用這些轉移指令,是能否編寫好分支程序的關鍵。

  分支程序設計要領如下。

   (1)首先要根據處理的問題用比較、測試等方式,或者用算術運算、邏輯運算,使標志寄存器產生相應的標志位。例如,比較兩個單元的地址的高低、兩個數的 大小,測試某個數據是正還是負,測試數據的某位是0還是1等。將處理的結果反映在標志寄存器的CF, ZF, SF, DF和OF位上。

  (2)根據轉移條件選擇轉移指令。通常一條條件轉移指令只能產生兩路分支,因此要產生n路分支需n-1條條件轉移指令。

  (3)各分支之間不能產生干擾,如果產生干擾,可用無條件轉移語句進行隔離。

  4.4.3 循環程序設計

  在程序中重復執行的程序段可用循環程序實現,80x86微機系統中有專門的循環控制指令來簡化循環程序的設計。循環控制指令已在第3章進行了介紹,這里不再多敘。

  一個循環程序通常由四部分組成。

  1)初始化部分

  為循環操作做準備工作,建立循環的初始值,如初始化地址指針、計數器及給變量賦初值等。

  2)循環體

  循環體為循環的工作部分,用于完成各種具體操作,它可以是一個順序結構、分支結構或又一個循環結構。若循環體內又包含有循環程序,則稱為多重循環。

  3)修改部分

  為執行循環而修改某些參數,如地址指針、計數器或某些變量。

  4)控制部分

  判斷循環是否結束,通常判斷循環是否結束主要有兩種方法:

  (1)計數器控制循環,這種方式一般用于循環次數已知的情況;

  (2)條件控制循環,用于循環次數未知,根據條件決定是否結束。

  【例4-2】計算Y∑20

  i1Ai

  設A1,A2……,A20是一組無符號16位二進制數,并設其和不大于2B。

  分析:定義數組名TABL存放A1,A2……,A20,和存放于單元YY中。中間結果存于寄存器AX中,BX寄存器為地址指針,CX寄存器作計數器。

  4.4.4 子程序設計

  程序設計過程中常常把多次引用的相同程序段編成一個獨立的程序段,當需要執行這個程序段時,可以用調用指令調用它。具有這種獨立功能的程序段稱為過程或子程序。調用子程序的程序通常稱為主程序,或調用程序。主程序向子程序的轉移叫子程序調用,簡稱轉子。

  1.子程序的設計方法

  適合編成子程序的程序有以下兩大類:

  (1)程序需要反復使用,這類程序編寫成子程序可避免重復編寫程序,并節省大量存儲空間。

  (2)程序具有通用性,這類程序大家都要用到,如鍵盤管理程序、磁盤讀寫程序、標準函數程序等。編成子程序后便于用戶共享。

  為了使用戶使用方便,子程序應當以文件形式編寫。子程序文件由子程序說明和子程序本身兩部分構成。

  1)子程序說明部分

  子程序說明部分應提供足夠的信息,使不同的用戶看了此部分后就知道該子程序的功能。子程序說明部分要求語言簡潔、確切,一般由以下幾部分組成:

  子程序的名稱;

  子程序的功能;

  使用的寄存器和存儲單元;

  子程序的入口、出口參數;

  本子程序是否又調用其他子程序。

  子程序從PROC語句開始,以ENDP語句結束,程序中至少應當包含一條RET語句用以返回主程序。在定義子程序時,應當注意其距離屬性:當子程序和調用程序在同一代碼段中時,用NEAR屬性;當子程序及其調用程序不在同一個代碼段中時,應當定義為FAR屬性。

  當由DOS系統進入子程序時,子程序應當定義為FAR屬性。為執行子程序后返回操作系統,在子程序的前幾條指令中設置返回信息。

  2.子程序使用中的問題

  1)子程序的調用和返回

   主程序調用子程序是通過CALL指令來實現的。子程序執行后,通過RET指令,返回主程序調用指令CALL的下一條指令,繼續執行主程序。一個子程序可 以由主程序在不同時刻多次調用。如果在子程序中又調用了其他的子程序,則稱為子程序的嵌套。特別是當子程序又能調用子程序本身時,這種調用稱為遞歸。有關 CALL指令和RET指令在第3章指令系統中已經詳細介紹,這里不再重復。

  2)調用子程序時寄存器及所用存儲單元內容的保護

  如果子程序中要用到某些寄存器或存儲單元時,為了不破壞原有的信息,要將寄存器或存儲單元的原有內容壓棧保護,或存入子程序不用的寄存器或存儲單元中。

  保護可以放在主程序中,也可以放在子程序中,但放在子程序中較好。例如:

  用于中斷服務的子程序則一定要把保護指令安排在子程序中,這是因為中斷是隨機出現的,因此無法在主程序中安排保護指令。

  3.子程序調用時參數的傳遞方法

  調用程序在調用子程序時需要傳送一些參數給子程序,這些參數是子程序運算中所需要的原始數據。子程序運行后要將處理結果返回調用程序。原始數據和處理結果的傳遞可以是數據,也可以是地址,統稱為參數傳遞。

  參數傳遞必須事先約定,子程序根據約定從寄存器或存儲單元取原始數據(稱入口參數);進行處理后將處理結果(稱出口參數)送到約定的寄存器或存儲單元,返回到調用程序。參數傳遞一般有下面三種方法。

  (1)用寄存器傳遞:適用于參數傳遞較少、傳遞速度快的情況。

  (2)用堆棧傳送:適用于參數傳遞較多、存在嵌套或遞歸的情況。

  (3)用存儲單元傳送:適用于參數傳遞較多時,但傳遞速度較慢。
計算機學習推薦
  • 掃一掃 分享悅讀 ➤
  • 掃碼可以分享到微信 qq朋友圈
計算機學習熱點
400部精品国偷自产在线| 日韩A无V码在线播放| 麻豆MDX0020穷小子大翻身| 蜜芽亚洲日韩欧美国产高清ΑV| 蜜臀av一区二区三区久久| 欧美精产国品一二三类产品特点| 人妻一区二区三区在线| 施主就让贫僧C进去吧| 性XXXⅩ俄罗斯女人| 亚洲精品成人网久久久久久| 一面亲上边一面膜的免费| AV天堂永久资源网AV天堂| 肥水不流外人田小说| 国产伦精品一区二区三区妓女| 九九精品99久久久香蕉| 蜜臀AV无码人妻精品| 日本喷奶水中文字幕视频| 午夜福利AV无码一区二区| 亚洲一区在线日韩在线尤物| 6080YY新视觉影院| 国产成年无码久久久久下载| 激情射精爆插热吻无码视频| 男生把手放进我内裤揉摸好爽| 色AV永久无码影院AV| 亚洲成人AV无码| 13岁幼儿3OOO| 国产成人艳妇AA视频在线| 精品无码国产一区二区三区麻豆| 欧美叉叉叉BBB网站| 少妇特殊按摩高潮爽翻天| 亚洲乱码国产一区三区| BBOX撕裂BASS后门BD| 国产美女露脸口爆吞精| 老色鬼久久亚洲AV综合0男男| 日本精品VIDEOSSE×少妇| 亚洲AV少妇熟女猛男| 42岁女子经历20天断崖式衰老| 高清毛茸茸的中国少妇| 久久久久高潮毛片免费全部播放 | 国产麻豆MD传媒视频| 久久精品国产亚洲AV网站| 欧日韩无套内射变态| 亚洲 无码 国产精品| 18禁无码无遮挡H动漫免费看| 国产精品18久久久久久vr| 久久永久免费人妻精品直播| 色综合久久婷婷88| 夜色毛片永久免费| 公车上拨开丁字裤进入电影| 久久天堂AV女色优精品| 色欲香天天天综合网站小说| 亚洲最大成人一区久久久| 粗大挺进亲女H顾晓晓| 久久麻豆成人精品| 他将头埋进双腿间吮小核| 又大又长粗又爽又黄少妇毛片| 国产96在线 | 欧美| 老师扒开粉嫩粉嫩的泬| 污的你下面一直滴水的句子| 中国大陆高清AⅤ毛片| 国产精品无码翘臀在线观看| 女人下面被舔视频免费播放电影| 性XXXX18免费观看视频| AV色欲无码人妻中文字幕| 精产国品一二三产区区别在线观看 | XXX激情影院亚洲AV| 娇小XXXXBXBⅨ黑人XX| 日韩A级无码免费视频| 一女被两男吃奶玩乳尖| 亚洲精品午睡沙发系列| 在线黄色网站观看汙| 18禁裸体动漫美女无遮挡网站| CSGO白嫖网站| 激情综合色五月丁香六月欧美| 人妻蜜と1~4中文字幕月野定规| 亚洲AV无码专区在线观看下载| 办公室撕开奶罩揉吮奶头H文| 精品色欲少妇一区二区三区| 他扒开内裤把舌头进去会有影响吗| 中文字幕无码精品亚洲资源网久久| 国产男男Gay做受×Xx男| 人妻av无码一区二区| 野花日本韩国视频免费高清观看| 国产成人无码区免费A∨视频网站 国产成人无码免费视频在线 | 无码视频免费一区二三区| JAPANESE丰满人妻HD| 久久九九兔免费精品6| 无码无套少妇毛多18PXXXX| 啊轻点灬大JI巴太粗太长了欧美| 久久久久久久久精品无码中文字幕| 无码人妻精品中文字幕免费| 斑马视频电影免费观看| 乱人伦人妻中文字幕无码91九 | 久久人妻AV中文字幕| 无码人妻av一区二区三区毛片| 爆乳大森しずか无码| 美女脱个精光露出奶头和尿口| 亚洲精品无码久久久久秋霞| 国产精品日日摸夜夜添夜夜添20 | 女被男狂揉吃奶胸60分钟视频 | 欧洲VODAFONEWIFI喷| 在线麻豆精东9制片厂AV影现网| 护士猛少妇色ⅩⅩXXX猛叫| 我和公发生了性关系公| 吃奶呻吟打开双腿做受视频免费| 欧美顶级METART裸体全部自| 在线 亚洲 国产 欧美| 久久99精品久久久久久蜜芽| 亚洲AV无码一区二区三区系列| 国产成人无码A区在线观看视频免| 日本黄色免费在线观看| CC小恩雅透明内抹油的使用方法| 旅游途中夫妻换着玩的说说搞笑| 亚洲中文字幕无码不卡电影| 记忆女神的女儿们| 亚洲AV无码精品色午夜APP| 国产精品久久久久婷婷五月色| 色噜噜狠狠色综合日日| 菠萝蜜进口路线区二1688| 青草青草视频2免费观看| 97无码免费人妻超级碰碰夜夜| 裸睡时一自慰不小心就滑进去啦 | 又爽又刺激免费男女视频| 九九在线中文字幕无码| 亚洲成AV人片在线观看无码| 国内精品自线一区麻豆| 无码专区人妻诱中文字幕| 国产精品久久久久精品三级APP| 天堂А√在线最新版中文在线| 国产SP调教打屁股视频网站| 少妇厨房愉情理伦BD在线观看| 放荡娇妻张开腿任人玩H| 日韩无码一区视频| 疯狂做受XXXⅩ高潮视频免费 | 色欲久久九色一区二区三区 | 东北粗壮熟女丰满高潮| 日日摸日日碰夜夜爽无| 丰满妇女强高潮18ⅩXXXHD| 少妇被粗大的猛进出69影院| 国产A∨国片精品青草视频| 熟妇人妻中文AV无码| 国产精品VIDEOS麻豆| 性色A∨人人爽网站HD| 国内老熟妇乱子伦视频| 亚洲精品国产成人99久久| 久久精品国产亚洲AV麻豆蜜芽| 亚洲一区二区三区无码中文字幕 | 刺激Chinese乱叫国产高潮| 色屁屁WWW影院免费观看入口| 国产成人午夜福利院| 性饥渴的少妇AV无码影片| 国自产拍亚洲免费视频| 亚洲熟妇AV日韩熟妇在线| 老熟女奶头好大呀| AV未满十八禁免费网站| 日韩AV影院在线观看| 国产成人丝袜视频在线观看| 亚洲AV乱码VA国产AV22| 久久99久国产精品66| 18禁裸乳啪啪无遮裆网站 | 国产揄拍国产精品| 亚洲女同成AV人片在线观看| 麻豆亚洲AV成人无码久久精品| 99久久精品美女高潮喷水| 日本人真人姓交大视频| 国产精成人品日日拍夜夜免费 | 365天天色综合网| 日本人妻人人人澡人人爽| 国产乱人伦AV在线无码| 亚洲精品自产拍在线观看| 美女裸体跪姿扒开屁股无内裤| SEERX性欧美| 图片小说视频一区二区| 精品国产VA久久久久久久冰| 曰韩精品无码一区二区三区视频| 欧美午夜精品久久久久久浪潮| 疯狂做受XXXX欧美老人| 亚洲AV无码国产精品色午友情链 | 国产精品久线在线观看| 小宝贝下面的小嘴流水了 | 人妻丰满熟妇无码区yeezy| 成年性生交大片免费看| 无线乱码不卡一二三四破解版| 久久99国产精品99蜜桃| 18禁黄网站禁片无遮挡观看AP | 黑人异族XXXⅩ吊大| 18禁黄网站禁片免费观看在线| 少妇被又粗又硬猛烈进出小说| 哈昂~哈昂够了太多了动图| 自拍偷在线精品自拍偷99| 日本怡春院一区二区三区| 国内粗鲁VIDEO老熟妇| 中文字幕AV高清片| 天堂АⅤ在线最新版在线| 久久久久国色AⅤ免费看| 成 人 黄 色 网 站 视 频| 亚洲成a人片在线观看无码关注| 女人不怕粗短就怕蘑菇头什么意| 国产国拍亚洲精品MV在线观看| 一个吃我奶头两个舔我下面|