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

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

  確定算法;

  編制程序">

国内精品伊人久久久影视 _久久亚洲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朋友圈
計算機學習熱點
亚洲国产日韩A在线播放| 欧美人与动XXXXZ0OZ| 久久久久久精品免费S| 搡BBB搡BBBB搡BBBB| 18禁肉肉无遮挡无码网站| 精品人妻AV无码一区二区三区| 玩弄JaPan白嫩少妇一区二区| AV天堂永久资源网| 狠狠色噜噜狠狠狠8888在| 他的舌头含有起了我的小豆豆| 把腿张开我要cao死你在线观看 | 丰满少妇高潮惨叫在线观看| 欧美人禽猛交乱配1| 在厨房抱住岳丰满大屁股韩国电影| 国产在线拍偷自揄拍无码| 婷婷五月花丁香综合| 不卡无在一区二区三区四区| 欧美饥渴熟妇高潮喷水水| 中文字幕丰满乱子无码视频| 久久天天躁狠狠躁夜夜2019| 亚洲精品第一国产综合麻豆| 国产综合无码一区二区辣椒| 性色AV极品无码专区亚洲| 国产伦精品一区二区三区免.费| 搡搡BB搡搡搡搡BBB| 风间由美性色一区二区三区| 日本老熟妇ⅩXX| 成在线人午夜剧场免费无码| 人妻体内射精一区二区三区| 本免费AV无码专区一区| 欧美内射AAAAAAXXXXX| 18禁美女黄网站色大片在线| 欧美美女多人群交视频| 刺激战场老阿姨是谁啊| 午夜免费无码福利视频网址| 精品人妻无码一区二区色欲产成人| 一区二区三区在线 | 日| 欧美熟妇的性裸交| 国产精品xxxxav| 野花影视免费观看高清| 欧美午夜精品一区二区蜜桃 | 国产果冻豆传媒麻婆精东影视| 三个人一起玩3Q详细经过| 国产AV激情久久无码天堂| 无码精品人妻一区二区三区在线| 国产乱人伦偷精品视频免| 亚洲精品无码AⅤ片| 精品久久久久久久中文字幕| 亚洲AV日韩AⅤ无码色老头| 精品人妻一区二区三区四区九九| 亚洲一区在线日韩在线尤物| 美女自拍高潮流白浆| FREE国产粉嫩熟妇XXXHD| 熟女精品视频一区二区三区| 国产精品久久久久久久久电影网| 亚洲AV一本岛在线播放| 精品久久久久中文字幕日本| 最新中文字幕AV无码不卡| 日韩午夜福利无码专区A| 丁香婷婷激情综合俺也去| 亚洲AV日韩AV无码污污网站| 两个男用舌头到我的蕊花| 成年女人A级毛片免费观看| 色偷偷色噜噜狠狠网站30根| 狠狠躁天天躁男人| FREEFORNVIDEOS性| 天美传媒MV免费观看软件特色| 久久精品国产亚洲AV麻豆软件| AV无码中出一区二区三区| 无码精品人妻一区二区三区人妻斩 | 在线观看国产一区二区三区| 少妇高潮喷水久久久久久久久久 | 亚洲欧美日韩久久精品第一区 | 欧美黑人一级爽快片婬片高清| 疯狂做受XXXX高潮不断| 亚洲一线产区二线产区区别在哪里 | 欧美金妇欧美乱妇XXXX| 国产区精品一区二区不卡中文| 中国老妇XXXX性开放| 婷婷色香合缴缴情AV第三区| 波多野结衣AV高清一区二区三区 | 自拍偷自拍亚洲精品10P| 无遮挡又黄又刺激又爽的视频| 免费高清中文字幕MV| 国产精品人人做人人爽| 99久久人妻精品免费一区| 亚洲AV无码不卡国产精品| 人妻系列无码专区69影院| 久久AV伊人蜜臀一区二区| 非洲黑人吊巨大VS亚洲女| 尤物AV无码国产在线看| 午夜成人鲁丝片午夜精品| 欧美午夜精品久久久久免费视| 精品久久久无码人妻中文字幕| 俄罗斯18XXOO在线| 中文字幕精品亚洲无线码二区| 亚洲AV成人无码精品网站色欲| 日本XXXX色视频在线播放| 精品久久久久久中文字幕| 国产成人无码免费视频在线| WWW久久无码天堂MV| 亚洲中文字幕人成乱码| 天美传媒在线观看果冻传媒视频| 欧美丰满熟妇XXXX性大屁股| 久久WWW成人_看片免费不卡| 国产美女丝袜一级肛交蜜桃| 成年AV免费网址大全超清| 18款禁用免费安装的软件APP| 亚洲色大18成人网站WWW在线| 无码国产69精品久久久久APP| 男女嘿咻激烈爱爱动态图| 久久久久亚洲AV成人片乱码| 含着她的花蒂啃咬高潮| 国产精品视频第一区二区三区| 东京热无码AV一区二区| MM1313亚洲精品无码又大又| 中文人妻AV高清一区二区| 亚洲最大无码成人网站4438| 偷窥妇科TUBESEX妇| 上面一个摸下面一个手念什么| 人人模人人爽人人喊久久| 国产精品国产三级国AV| 国产AV午夜精品一区二区三区| 99久久久无码国产精品性| 色欲AV国产精品一区二区| 日韩精品无码免费专区午夜不卡 | 日本又黄又爽又色又刺激的视频| 欧美精品99久久久啪啪| 男女爽爽午夜18禁影院免费| 蜜桃AV无码国产丝袜在线观看| 久久亚洲精品无码VA大香大香| 久久久久精品无码专区| 久久精品伊人一区二区三区| 久久亚洲AⅤ精品网站| 麻豆传煤入口免费进入2023| 加勒比一本HEYZO高清视频| 精品久久久无码人妻字幂| 精品第一国产综合精品蜜芽| 精品亚洲AⅤ在线观看| 老头边吃奶边弄进去呻吟| 女人被狂躁c到高潮视频| 漂亮人妻去按摩被按中出| 日韩成人免费VA毛片| 天天狠天天透天干天干| 两个男人吮她的花蒂和奶水视频| 欧美 亚洲 国产 另类| 成年女人天堂香蕉网| 99无人区码一码二码三码四| 波多野结衣AV中文一区二区三区| www.丁香五月| 国产CHINASEX对白VID| 国产午夜福利精品一区二区三区| 久久国产AVJUST麻豆| 丰满的少妇XXXXX人妻| 国产亚洲精品在AV| 久久AV伊人蜜臀一区二区| 久久亚洲AV成人无码| 人妻丰满熟妇AⅤ无码无码区免费| 他的舌头探入蜜源毛毛虫说说| 性欧美18-19SEX性高清播| 亚洲一区强奸视频| 啊轻点灬大JI巴太粗太长了在线| 国产成人猛男69精品视频| 国产午夜鲁丝片AV无码免费| 久久久久精品电影一区二区三区| 欧美精品一区二区| 玩弄人妻少妇500系列视频| 亚洲色成人www在线观看| 宝贝别忍着喷出来| 国产亚洲综合欧美视频| 精品人妻少妇敕草AV无码专区| 漂亮人妻被强中文字幕久久| 少妇MM被擦出白浆液视频| 亚洲精品无码日韩国产不卡Av| AV 无码 在线 观看| 国产毛片毛多水多的特级毛片| 久久天天躁狠狠躁夜夜2019| 欧美亚洲一区二区三区| 亚洲AV无码专区在线| JAPANESE嫩21VIDE| 国外B站推广网站| 人妻丝袜AV先锋影音先| 西西人体艺术图片| GAYFUCKⅩⅩⅩⅩHD激情| 黑人顶到深处高潮颤抖| 免费无码又爽又刺激聊天APP| 小荡货奶真大水真多紧视频 | 把腿张开老子臊烂你多P| 久久WWW成人_看片| 偷拍精品视频一区二区三区| 。国产精品麻豆成人AV网| 国内精品久久久久精品| 日产精品一线二线三线优势| 亚洲中文久久久久久精品国产| 国产成人一区二区三区影院| 欧美成人精品三级又大又粗| 亚洲欧美成人中文日韩电影网站| 国产成人精品亚洲日本语言| 欧美一区二区三区性视频野战 | 被公侵犯肉体中文字幕电影|