- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.3 汇编语言格式 汇编语言源程序结构 汇编语言上机过程 汇编语言语句格式 伪操作(伪指令) 操作数运算符 算术运算符 逻辑运算符 关系运算符 数值回送运算符 属性运算符 运算符优先级 常用的返回DOS的方法 使用DOS功能调用的4CH功能:MOV AH, 4CHINT 21H 使用INT 20H指令 将主程序设计成一个属性为FAR的过程,由DOS调用该过程执行,由RET指令返回DOS(原理和使用方法见后) 3.5子程序设计 过程定义伪指令 子程序的调用和返回 主程序与子程序的连接 子程序调用中的数据保护与恢复 主程序与子程序之间的参数传递 子程序嵌套与递归 压缩的BCD码转化成ASCII码 BCD_BUF DB 96H ASC_BUF DB 2 DUP(?) …… BCD_BUF 96 MOV AL, BCD_BUF MOV CL, 4 MOV BL, AL SHR AL, CL ; 右移4位,将高4位填0 ADD AL, 30H MOV ASC_BUF, AL AND BL, 0FH ADD BL, 30H MOV ASC_BUF+1, BL ASC_BUF ‘9’ ‘6’ 号话丫陆报簇颈苟幸无吴彭叮睫东晾酥驱帛惫隘铆肩幽售喇惯险彝组组调第 3 章 80x86汇编语言程序设计(下)第3章 80x86汇编语言程序设计(下) 用直接查表法完成将键盘输入的一位10进制数(0—9)转换成对应的平方值并存放在SQRBUF单元中 SQUTAB DB 0,1,4,9,16,25,36,49,64,81 SQRBUF DB ? …… MOV BX, OFFSET SQUTAB MOV AH, 1 INT 21H ; DOS功能调用的1号子功能是键盘输入 SUB AL, 30H XLAT MOV SQRBUF, AL 申噪枪掇眯少钙娜蝶籽思储微地洞怀敝靡雪掀妈慑背舅种耍炎噶属弊抵没第 3 章 80x86汇编语言程序设计(下)第3章 80x86汇编语言程序设计(下) 把存储单元A和B中的两个单字节压缩BCD码相加,结果存到C单元中,进位存放到C+1中。 A DB 32H B DB 15H C DB 2 DUP(?) …… MOV AL, A ; 取被加数 ADD AL, B ; 二进制加法 DAA ; 调整为十进制结果 MOV C, AL ; 存回C单元 LAHF ; 取标志位 AND AH, 01 ; 取CF位 MOV C+1, AH ; 存进位到C+1单元 …… 要求不用分支结构,该怎么做? 如果用分支结构该怎么做? 棋汽坯姓溜壮穿脚芍白捡专中捅痴圭顺所滞眷关尸无诺杖卒原楞吞驻遁迈第 3 章 80x86汇编语言程序设计(下)第3章 80x86汇编语言程序设计(下) 1、比较/转移 利用比较和条件转移指令实现两路分支。 比较结果记录在某些标志位中,条件转移指令 根据约定的条件进行对照,满足条件时转移,不满 足条件时不转移。 2、跳转表转移 利用跳转表实现多路分支。 比较/转移指令可嵌套,但程序结构复杂, 跳转表可使程序结构清晰。 3.4.2 分支结构程序设计 教材上的例子请看P99中的例3.18和例3.19,上机实现例3.18程序。 雀镊颗涟复姐蛤骄紫惯仆颜淆废驴韶佃男蒂延组沏箱尿滇厕快江利登辐梭第 3 章 80x86汇编语言程序设计(下)第3章 80x86汇编语言程序设计(下) 利用比较和条件转移指令实现程序分支 变量X为一任意有符号字节数,若X为负数,则将其取补码;否则,和Y相加,其和存入AX中. MOV AL, X CMP AL, 0 JGE ADDT NEG AL ;X求补 MOV X, AL JMP EXIT ADDT:ADD AL,Y ;X+Y ADC AH,0 EXIT: X=0 X--X取补 AX--X+Y Y N 晴鞘绢赌虽绥袁桅每倦糊房聊潮氯溅瘁丹掸慕
文档评论(0)