第10章如何发挥主机内存各类寄存器位处理器的功能--汇编语言程序设计_第1页
第10章如何发挥主机内存各类寄存器位处理器的功能--汇编语言程序设计_第2页
第10章如何发挥主机内存各类寄存器位处理器的功能--汇编语言程序设计_第3页
第10章如何发挥主机内存各类寄存器位处理器的功能--汇编语言程序设计_第4页
第10章如何发挥主机内存各类寄存器位处理器的功能--汇编语言程序设计_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

10.1 概述w 10.1.1 汇编语言程序设计的一般步骤w 10.1.2 流程图返回本章首页10.1.1 汇编语言程序设计的一般步骤w 汇编语言程序设计一般有以下几个步骤:w 1分析问题,确定算法w 2绘制流程图w 3根据流程图编制程序w 10调试程序 返回本节10.1.2 流程图w 1流程图的概念w 流程图是由特定的几何图形、指向线、文字说明来表示数据处理的步骤,形象描述逻辑控制结构以及数据流程的示意图。流程图具有简洁、明了、直观的特点。2流程图符号表示( 1)起止框:表示程序的开始和结束。开始结束w (2)判断框 条 件( 3)处理框 Y Nw (10)指向线 10.2 顺序程序设计w 下面举例说明顺序程序的设计。w 【 例 10.1】 试编写一程序计算以下表达式的值。w =( v-( * + -5100) /x w 式中 x、 、 v均为有符号字数据。w 设、的值存放在字变量、 V中,结果存放在双字变量之中,程序的流程图如图 10.1所示。图10.1 顺序运算程序流程图DXw 源程序如下:w DATA SEGMENTw X DW 200w Y DW 100w Z DW 3000w V DW 10000w W DW 2 DUP(?)w DATA ENDSw STACK SEGMENT STACKw DB 200 DUP( 0)w STACK ENDSw CODE SEGMENTw ASSUME DS: DATA,CS: CODE, SS: STACKw START: MOV AX,DATAw MOV DS, AX ;DATA AXw MOV AX, X w IMUL Y ;( X) *( Y) DX: AXw MOV CX, AXw MOV BX, DX ;( DX: AX) ( BX: CX)w MOV AX, Zw CWD ;( Z) 符号扩展w ADD CX, AXw ADC BX, DX ;( BX: CX) +( DX: AX) ( BX: CX)w SUB CX, 5100w SBB BX, 0 ;( BX: CX) -5100 ( BX: CX)w MOV AX, V w CWD ;( V) 符号扩展w SUB AX, CXw SBB DX, BX ;(DX: AX) -( BX: CX) ( DX:AX)w IDIV X ;( DX:AX) /Xw MOV W, AX ; 商 Ww MOV W+2, DX ; 余数 DX W+2w MOV AH, 10CHw INT 21Hw CODE ENDS ; 退出 DOS 状态w END START【 例 10.2 BX、 AL与查表指令】w 【 例 10.2】 已知某班学生的英语成绩按学号(从 1开始)从小到大的顺序排列在 TAB表中,要查的学生的学号放在变量 NO中,查表结果放在变量 ENGLISH中。编写程序如下:w STACKSEGMENT STACKw DB 200 DUP( 0)w STACKENDSw DATA SEGMENTw TAB DB 80, 85, 86, 71, 79, 96w DB 83,56, 32, 66, 78。 810w NO DB 10w ENGLIST DB ?w DATA ENDSw CODE SEGMENTw ASSUME DS: DATA, SS: STACK, CS: CODEw BEGIN: MOV AX, DATAw MOV DS , AXw LEA BX, TAB w MOV AL, NOw DEC ALw XLAT TABw MOV ENGLISH, ALw MOV AH, 10CHw INT 21Hw CODE ENDSw END BEGIN10.3 分支程序设计(标志寄存器与条件转移指令)返回本章首页测试 某一次运算的 结果ZF=1 JZ/JESF=1 JSOF=1 JOPF=1 JPCF=1 JC( JB, JNAE)比 较 两个无符号数(ASCII码 )JB=JNAE=JC(借位位)JL=JNGE JNLE=JG测试 CX的 值 ,等于 0则转 移JCXZ10.3 分支程序设计(标志寄存器与条件转移指令)w 10.3.1 用条件转移指令实现程序分支w 10.3.2 用跳转表实现多路分支返回本章首页10.3.1 用条件转移指令实现程序分支w 【 例 10.3】 编写计算下面函数值的程序:w 1 X 0w Y= 0 X=0w -1 Xw 设输入数据为 X、 输出数据 Y,且皆为字节变量。程序流程图如图 10.2所示。w 程序如下:图 10.2 分支运算 程序流程图w DATA SEGMENTw X DB -10w Y DB ?w DATA ENDSw STACK SEGMENT STACKw DB 200 DUP( 0)w STACK ENDSw CODE SEGMENTw ASSUME DS: DATA,SS: STACK, CS: CODEw START: MOV AX,DATAw MOV DS, AXw CMP X, 0 ; 与 0进行比较w JGE A1 ; X0转A1w MOV Y, -1 ; X 0时, -1 Yw JMP EXITw A1: JG A2 ; X 0转 A2w MOV Y, 0 ; X=0时, 0 Yw JMP EXITw A2: MOV Y, 1 ; X 0, 1 Y w EXIT: MOV AH, 10CHw INT 21H w CODE ENDSw END START图 10.2 分支运算 程序流程图Xw DATA SEGMENTw X DB -10w Y DB ?w DATA ENDSw STACK SEGMENT STACKw DB 200 DUP( 0)w STACK ENDSw CODE SEGMENTw ASSUME DS: DATA,SS: STACK, CS: CODEw START: MOV AX,DATAw MOV DS, AXw CMP X, 0 w JLE A1 w MOV Y, 1 w JMP EXITw A1: JL A2 w MOV Y, 0 w JMP EXITw A2: MOV Y, -1 w EXIT: MOV AH,10CHw INT 21H w CODE ENDSw END START【 例 10.10】 w 【 例 10.10】 试编一程序,求三个带符号字数据中的最大值,并将最大值存入 MAX字单元中。w 设三个带符号数分别在三个字变量 X、 Y、 Z中存储。程序流程图如图 10.3所示 图 10.3 例 10.10程序流程图 w 程序如下:w STACSEGMENT STACKw DB 200 DUP( 0)w STACKENDSw DATASEGMENTw X DW 00ABHw Y DW 5w Z DW 200w MAX DW ?w DATA ENDSw CODESEGMENTw ASSUME DS: DATA,SS: STACK, CS: CODE w START: MOV AX, DATAw MOV DS, AXw MOV AX, Xw CMP AX, Y ; X Y?w JG L1w MOV AX, Y ; Y Z?w CMP AX, Zw JG EXITw L2: MOV AX, Zw JMP EXITw w L1: CMP AX, Z ; X Z?w JLE L2w EXIT:MOV MAX, AXw MOVAH, 10CHw INT21Hw CODE ENDSw ENDSTART 返回本节10.3.2 用跳转表实现多路分支(教材 177页)w 【 例 10.5】 设某程序有 8路分支,试根据给定的 N值( 18),将程序的执行转移到其中的一路分支。w 程序流程如图 10.10所示。 w 程序如下:w DATA SEGMENTw TAB DW P1, P2, P3, P10, P5, P6, P7, P8w N DB 5w DATA ENDSw STACK SEGMENTw DB 200 DUP( 0)w STACK ENDSw CODE SEGMENTw ASSUME DS:D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论