[工学]汇编语言程序设计课件.ppt

  1. 1、本文档共149页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]汇编语言程序设计课件

加法运算标志 MOV DX,4652H ADD DX,0F0F0H 标志位的设置 OF=1: 8位带符号数相加,和超出范围(-128~+127), 16位带符号数相加,和超出范围(-32768~+32767)。此时结果有错误。 CF=1:8位无符号数相加,和超过255,16位无符号数相加,和超过65535。此时结果正确,只是位数有限,放不下结果。 其他条件标志(SF,AF,PF,ZF)根据定义设定。 减法标志设置 SUB WORD PTR[SI+14H],0136H (DS)=3000H,(SI)=0040H,(30054)=4336H 4336 0100 0011 0011 0110 -0136 -0000 0001 0011 0110 0100 0011 0011 0110 +1111 1110 1100 1010 1 0100 0010 0000 0000 结果: (30054H)=4200H SF=0,ZF=0,CF=0,OF=0 例:求补运算 mov ax,0ff64h neg al ;ax=ff9ch,OF=0、SF=1、ZF=0、PF=1、CF=1 sub al,9dh ;ax=ffffh,OF=0、SF=1、ZF=0、PF=1、CF=1 neg ax ;ax=0001h,OF=0、SF=0、ZF=0、PF=0、CF=1 dec al ;ax=0000h,OF=0、SF=0、ZF=1、PF=1、CF=1 neg ax ;ax=0000h,OF=0、SF=0、ZF=1、PF=1、CF=0 相同的两组二进制代码分别用DIV和IDIV运算,可能得到 不同的结果: 例如:(AX) = 0FFFFH, (CL)=1 DIV CL ;0FFFFH÷1=0FFFFH,产生除法溢出 IDIV CL ;(AL)=0FFH,(AH)=0(-1÷1=-1 ……0) 3.2.4 多项式计算 CODE SEGMENT ASSUME DS: DATA, CS: CODE START: MOV AX, DATA MOV DS, AX MOV AX, 4C00H INT 21H CODE ENDS END START 程序主体 中断指令和系统功能调用 中断(Interrupt)是又一种改变程序执行顺序的方法 8086/8088 CPU支持256个中断,每个中断用一个编号(中断向量号)区别 中断指令有3条: INT i8 IRET INTO 本节主要掌握中断调用指令INT i8,进而掌握系统功能调用 1. 中断指令 INT i8 ;i8表示0-255之间的立即数 ;中断调用指令:产生i8号中断 ;主程序使用,其中i8表示中断向量号 根据i8,在中断向量表中找到它所对应的中断向量,即得到所要执行的程序段的 段基地址:段偏移地址 2. 系统功能调用方法 汇编程序提供给汇编语言程序员的功能非常有限 程序员需要利用ROM-BIOS和操作系统提供的资源 系统功能调用是程序设计的一个重要方面 系统功能调用步骤 通常按照如下4个步骤进行: ⑴ 在AH寄存器中设置系统功能调用号 ⑵ 在指定寄存器中设置入口参数 ⑶ 用中断调用指令( INT i8)执行功能调用 ⑷ 根据出口参数分析功能调用执行情况 3. DOS输入输出功能调用 DOS利用21H号中断提供给用户近百个系统功能,主要包括设备管理、目录管理和文件管理三个方面的功能 书附录F中列出了主要的DOS功能调用的使用解释 输出一个字符02H号调用 输入一个字符01H号调用 输出一个字符串09H号调用 输入一个字符串0AH号调用 4. ROM-BIOS输入输出功能调用 ROM-BIOS也以中断服务程序的形式,向程序员提供系统的基本输入输出程序 ROM-BIOS功能更加基本,且与操作系统无关 当DOS没有启动或不允许使用DOS功能调用时,可以使用ROM-BIOS功能调用 比如:输出一个字符: ⑴ 功能调用号:AH=0EH ⑵ 入口参数: AL=欲显示字符的ASCII码,通常BX=0 ⑶ 功能调用:INT 10H ⑷ 出口参数:无 (1)输出单个字符 (2)输出一个字符串 01H号DOS功能调用 输入一个字符 ⑴ 功能调用号:AH=01H ⑵ 入口参数:无 ⑶ 功能调用:INT 21H ⑷ 出口参数:AL=键盘输入的字符 键盘输入字符后返回,ASCII码在AL中,同时屏幕显示该字符( “回显”,

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档