[经济学]第6章 X86汇编语言程序设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[经济学]第6章 X86汇编语言程序设计

第六章 8086/8088汇编语言程序设计 第六章 8086/8088汇编语言程序设计 6-0 汇编语言介绍 一个汇编语言程序可由若干个(此例有3个)段组成。每个段均以SEGMENT开始以ENDS结束。 每个段可以包含若干语句,而语句又可以是指令语句或伪指令语句两种。如程序中用到的ASSUME,DB,SEGMENT…ENDS等为伪指令语句。 每条语句可由标识符、保留字、表达式等元素组成。 DOS与BIOS的关系 BIOS和DOS是两组系统服务程序的集合,它们使程序员能访问和使用组成IBM-PC机的硬件。 在一些情况下,选择DOS中断或选择BIOS中断可以执行同样的功能。 BIOS程序提供了基本的低层服务,所以通过BIOS功能调用比通过相应的DOS功能调用更能提高程序的执行效率。 只有少数的BIOS功能调用没有相应的DOS中断。 如何进行BIOS调用 中断调用前需要把功能号装入AH中,设置相应的入口参数。中断调用后,或产生一个动作,或设置相应的出口参数。具体请查阅书上BIOS功能调用的相关表格。 举例来说,INT 10H是常用的BIOS功能调用,它是显示器I/O的BIOS功能调用。 置光标位置指令如下: MOV AH,02H ;装入功能号 MOV DH,6 ;定光标所在行 MOV DL,6 ;定光标所在列 MOV BH, 0 ;定光标所在页 INT 10H BIOS键盘中断调用 (INT 16H) 先送功能号到AH中,然后使用INT 16H指令,将键盘输入的ASCII码送到AL寄存器。 特殊功能键按下的判断 特殊功能键指不具备ASCII码的键盘按键 特殊功能键包括: Shift,Ctrl,Alt,Num,Lock,Scroll,Ins,Caps Lock 在INT 16H功能调用中,如果功能号AH=2时,AL中返回键盘状态字节。 键盘状态字节表示特殊功能键的状态变换情况 键盘状态字节 程序设计基本要求 —能正常运行,实现要求的功能,且具有以下特点: ① 程序结构模块化,简明,易读,易调试,易维护 ② 执行速度快 ③ 占用存储器空间少 6-5 程序设计方法 汇编语言程序设计步骤 ① 分析问题,抽象出描述问题的数学模型,确定合理算法 ② 绘制程序流程图 ③ 分配存储空间及工作单元(各段位置及段寄存器) ④ 根据流程图编写程序 ⑤ 静态检查,上机调试 ⑥ 程序运行,结果分析 程序结构 1 顺序结构 —程序顺序执行,无分支,无循环,无转移。 2 分支结构 —程序在顺序执行中,根据不同的计算结果由计算机自动判断,然后按不同条件选择下一步执行的程序段。 3 循环结构 —在给定条件成立时,反复执行某程序段,直到条件不成立为止。 给定的条件称为循环条件,反复执行的程序段称为循环体。 4 子程序结构 —汇编语言中多次使用的程序段可写成一个相对独立的程序段,将它定义为“过程”或称子程序,需要执行这段程序时,就进行“过程”调用。 一、顺序结构 例:实现两个32位无符号数乘法。 DATA SEGMENT NUM1 DW 1200H,3400H NUM2 DW 5600H,7800H MUT DW 4 DUP(?) DATA ENDS STACK SEGMENT PARA STACK STACK DB 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK BEGIN: PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX LEA BX,NUM1 MOV AX,[BX] ;B→AX MOV SI,[BX+4] ;D→SI MOV DI,[BX+6] ;C→DI MUL SI ;B*D MOV [BX+8],AX ;保存部分积1 MOV [BX+0AH],DX MOV AX,[BX+2] ;A→AX MUL SI ;A*D ADD [BX+0AH],AX ADC [BX+0CH],DX;带进位加入积2单元中 MOV AX,[BX] ;B→AX MUL DI ;B*C ADD [BX+0AH],AX ;B*C加入积单元 ADC [BX+0CH],DX ;带进位加入积3单元中 ADC WORD PTR[BX+0EH],0 ;带进位加入积4单元中 MOV AX,[BX+2] ;A→AX MUL DI ;A*C ADD [BX+0CH],AX ADC [BX+0EH],DX MOV

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档