已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
5 6汇编语言程序设计的基本方法 通常 编制一个汇编语言源程序应按如下步骤进行 明确任务 确定算法 绘制流程图 包括确定内存单元和分配寄存器 根据流程图编写汇编语言程序 上机调试程序 程序的基本结构有四种 顺序结构 分支结构 循环结构和子程序结构 5 6 1顺序程序设计 顺序结构也称线性结构 其特点是其中的语句或结构被连续执行 顺序程序是最简单的 也是最基本的一种程序结构 这种结构的程序从开始到结尾一直是顺序执行的 中途没有任何分支 从这种结构的流程图来看 除了有一个起始框 一个终止框外 就是若干执行框 没有判断框 指令指针IP值线形增加 IP IP 1 S1 S2 S3 开始 结束 例1 求两个数的平均值 这两个数分别存放在X单元和Y单元中 而平均值放在Z单元中 源程序编制如下 DATASEGMENTXDB8CHYDB64H 赋予初值ZDB 分配存储空间DATAENDSSTACKSEGMENTDW20HDUP 0 给堆栈段分配一个TOPLABLEWORD 据区共32个字 每个STACKENDS 字的内容均为0 CODESEGMENTMAINPROCFAR 定义子程序名为MAIN 类型FARASSUMECS CODE 把段寄存器和ASSUMEDS DATA 段名对应起来ASSUMESS STACKSTART PUSHDSMOVAX 0PUSHAXMOVAX DATA 给数据段赋初值MOVDS AXMOVAX STACKMOVSS AXMOVSP OFFSETTOP MOVAL XADDAL Y 两数低字节相加结果送ALMOVAH 0ADCAH 0 两数高字节带进位相加SHRAX 1MOVZ ALRETMAINENDPCODEENDSENDSTART 例2编写程序 计算 W X Y Z 100 W 其中W X Y Z均为16位带符号数 计算结果的商存入AX 余数存入DX 例3把非压缩十进制数DAT1转换为压缩十进制数 金手指考试网元贝驾考网科目一科目四仿真考试题C1 Grammar 例2编写程序 计算 W X Y Z 100 W 其中W X Y Z均为16位带符号数 计算结果的商存入AX 余数存入DX DATASEGMENTWDW268XDW 73YDW48ZDW 85DATAENDSSTACKSEGMENTDW100DUP STACKENDSCODESEGMENTASSUMECS CODE DS DATA SS STACKSTART MOVAX DATAMOVDS AXMOVAX X 计算X YIMULYMOVCX AX 用CX存储结果低位MOVBX DX 用BX存储结果高位MOVAX Z 计算X Y Z CWDADDCX AXADCBX DXSUBCX 100SBBBX 0MOVAX WCWDSUBAX CXSBBDX BXIDIVWMOVAH 4CHINT21HCODEENDSENDSTART 例3把非压缩十进制数DAT1转换为压缩十进制数 STACK64H DATADAT1DW0908H 非压缩十进制数0908H CODEBEGIN MOVAX DATAMOVDS AXMOVAX DAT1 AX 0908HMOVCL 4 CL 4SALAH CL 09字节左移4位 AH 90HROLAX CL 9008H字循环左移4位 AX 0089HROLAL CL 89字节循环左移4位 AL 98HMOVBYTEPTRDAT1 AL DAT1 98H 压缩十进制数98HMOVAH 4CH 返回DOSINT21HENDBEGIN 返回 5 6 2分支程序设计 分支程序结构也称条件结构 通常是在两种或两个以上的不同的操作中选择其中的一个 如下图所示 分支是通过条件转移指令来实现的 分支结构有一个共同点 运行方向总是向前的 IP受标志位的影响而跳变 影响标志的指令CMP TEST JXX 条件 S1 S2 条件 S S1 S2 Sn 条件 N N Y Y 两路分支程序设计 例4用比较指令和条件转移指令实现两路分支的程序段 MOVAX M 假定M和N为有符号数MOVBX NCMPAX BX 比较M和N的大小 影响标志位 准备条件JGNEXT M N时转移 注意若M N为无符号数时用JA指令 分支程序2JMPDONENEXT 分支程序1 DONE RET 例5 现有一符号函数 1当X 0时Y 0当X 0时 1当X 0时假定X为 25 且存放在VARX单元中 函数值Y存放在VARY单元 试编写程序根据X的值确定函数Y的值 根据题意画出流程图如下 实现符号函数程序的流程图 开始 AL X AL 0 Y 1 结束 AL 0 Y 1 Y 0 Y Y N N 编写程序如下 DSEGSEGMENTVARXDB 25VARYDB DSEGENDSCSEGSEGMENTASSUMECS CSEG DS DSEGSTART MOVAX DSEGMOVDS AXMOVAL VARXCMPAL 0JGENEXTMOVAL 1JMPHALT NEXT JEHALTMOVAL 1HALT MOVVARY ALMOVAH 4CHINT21HCODEENDSENDSTART 例6已知X是单字节带符号数 请设计计算下列表达式的程序 Y 例6已知X是单字节带符号数 请设计计算下列表达式的程序 Y 程序如下 DATASEGMENTXDB YDB DATAENDSCODESEGMENT 代码段START PROCFARASSUMECS CODE DS DATAMOVAX 0 MOVAX DATA 初始化DSMOVDS AXMOVAL X 取数XCMPAL 0 准备条件JNSPLUS X 0则转移NEGAL X 0则求补JMPDONEPLUS ADDAL 20 X 0时 X 20DONE MOVY AL 计算结果送YRET 返回STARTENDPCODEENDSENDSTART 汇编结束 分支结构程序设计的关键在于准确地知道操作结果影响的标志位状态和正确地使用条件转移指令 根据对条件的判断而选择不同的处理方法是人的基本智能体现 例 设内存中有三个互不相等的无符号字数据 分别是放在ARG开始的字单元 编制程序将其中最大值存入MAX单元 分析 求三个无符号数中的最大值 只要把三个数据两两比较 用JA JNB JNA JC等指令就可判断两数的大小 从而选出其中最大值 源程序如下 SSEGSEGMENTSTACKSTKDB20DUP 0 SSEGENDS DSEGSEGMENTARGDW7138H 84A6H 29EHMAXDW DESGENDSCSEGSEGMENTASSUMECS CSEG DS DSEG SS SSEGFMAX MOVAX DSEGMOVDS AXMOVSS AXMOVSP SIZESTKLEASI ARGMOVAX SI MOVBX SI 2 CMPAX BX 循环结构程序设计 循环程序一般由四个部分组成 1 循环初值部分 这是为了保证循环程序能正常进行循环操作而必须做的准备工作 循环初值分两类 一类是循环工作部分的初值 别一类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025鄂尔多斯中考能源文化冲刺卷(物理+化学)
- 基于AI大模型辅助病历书写系统设计方案
- 2026秋季大连银行校园招聘备考题库含答案详解(能力提升)
- 2026年中国银联校园招聘145人备考题库附答案详解(预热题)
- 景德镇市公安局2025年下半年招聘警务辅助人员体能测评备考题库完整参考答案详解
- 宁波市海曙区龙观乡山下村工作人员招聘1人备考题库附答案详解(轻巧夺冠)
- 2025年景德镇珠山区招聘社区工作者备考题库【225人】带答案详解(完整版)
- 2026四川农商银行校园招聘1065人备考题库及完整答案详解
- 2025贵州毕节市赫章县招聘城市社区工作者8人备考题库附答案详解(达标题)
- 2025年甘肃省白银市靖远县北滩镇选聘专业化管理村文书备考题库含答案详解(新)
- JJF(陕) 003-2019 砂浆稠度测定仪校准规范
- 低压工作票填写培训
- 【MOOC】工程图学-中国矿业大学 中国大学慕课MOOC答案
- DB33-T 1389-2024 树木保护性移栽技术规范
- 东北师大附属中学2025届高三物理第一学期期中教学质量检测试题含解析
- 帝国的兴衰:修昔底德战争史学习通超星期末考试答案章节答案2024年
- 国元农业保险股份有限公司招聘笔试题库2024
- 数据新闻概论 课件 第7章 数据新闻的设计
- TCNEA-核电厂放射性固体废物包难测核素活度浓度比例因子确定方法
- 吨包包装称重器的研制与应用
- 中级财务会计期末试题及答案
评论
0/150
提交评论