汇编语言课件第3章.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用串指令装入法 利用的串指令是STOSW: CLI ;禁止中断 MOV AX,0 MOV ES,AX ;置向量表段地址 MOV DI, n*4 ;置向量表偏移地址 MOV AX,OFFSET INT-n;取中断程序入口偏移地址 CLD ;清DF标志位,DI值递升 STOSW MOV AX,SEG INT-n;取中断程序入口段地址 STOSW STI 直接接入法 把中断服务子程序入口地址的段地址和偏移量直接写入中断向量表。如中断n的服务程序的入口段地址为2000H,偏移量为1000H: MOV AX,0 MOV DS,AX ;数据段指向0段 MOV AX,1000H MOV WORD PTR [n*4],AX ;置偏移地址 MOV AX,2000H MOV WORD PTR [n*4+2],AX;置段地址 INT 21H的几个功能 INT 21H为DOS功能调用,可以完成设备管理及磁盘文件管理等近90个子功能,子功能是通过DX寄存器和AH寄存器预先设置参数达到的,AH用于存放调用功能号,常用功能调用有: 键盘单字符输入 键盘多字符输入 单字符显示器输出 字符串显示器输出 返回操作系统 键盘单字符输入 也称01H功能或1号功能调用,使用方式为: MOV AH,01H INT 21H 执行时,等待键盘输入,键盘按下一键时,若为Contrl-Break键则退出,否则键入字符的ASCII码置入AL中,并在屏幕上显示出来。 MOV AH, 01 ;DOS功能号:键盘输入 INT 21H ;DOS调用 MOV CHAR, AL ;返回参数: (AL) 键盘多字符输入 0A号功能,使用方式为: BUF DB 20;符号地址BUF的单元内容为20 DB ? ;存放实际键入字节数 DB 20 DUP(?) ;实际键入字符存放单元 MOV DX, SEG BUF ;BUF单元的段地址送DS MOV DS, DX MOV DX, OFFSET BUF;BUF单元偏移地址送DX MOV AH, 0AH ;系统调用 INT 21H 执行时,等待键盘输入,直到Contrl-Break键或回车键Enter,键入字符置入DS:DX指定缓冲区中。 20 5 68H 61H 70H 70H 79H 0DH BUF 单字符显示器输出 显示字符的ASCII码送DL中,进行02H功能调用: MOV DL, ‘A’ ;显示器显示字符A MOV AH, 02H INT 21H 例:X,Y为16位数,先判断X50,是则转移TOO_HIGH,否则X-Y,溢出转OVERFLOW,否则求|X-Y|,结果送RESULT MOV AX,X CMP AX,50 JG TOO_HIGH SUB AX,Y JO OVERFLOW JNS NONNEG NEG AX NONNEG: MOV RESULT,AX … TOO_HIGH: … OVERFLOW: … 例:α、β为有符号双精度数,存储在DX、AX及BX、CX中,若αβ 转X执行,否则转Y执行 CMP DX,BX JG X JL Y CMP AX,CX JA X Y: … X: … 例:首地址为ARRAY的N字数组,计算正数,负数和0的个数,正数个数放DI,0个数放SI,根据N-(DI)-(SI)计算负数个数,放AX中,最后如果有负数则转NEG_VAL处执行 mov cx,N ;(CX)=数组大小 mov bx,0 ;BX清零 mov di,bx ;DI初值为零 mov si,bx ;SI初值为零 again: cmp word ptr array[bx],0 ;比较数组元素 jle less_or_eq ;=0转 inc di ;0计数 jmp short next ;转next取下一个数组元素 less_or_eq: jl next ;0转next取下一个数组元素 inc si ;=0计数 next: add bx,2 ;基址指针加2 dec cx ;计数减1 jnz again;计数值不为0转处理下一个元素 mov ax,N ;(AX)=N sub ax,di ;(AX)=N-(DI) sub ax,si ;(AX)=N-(DI)-(SI) jz skip ;0计数值为0转skip jmp near ptr neg_val;0计数值不为0转neg_val skip:

文档评论(0)

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

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

1亿VIP精品文档

相关文档