微机原理与接口技术8086 寻址方式和指令系统.ppt

微机原理与接口技术8086 寻址方式和指令系统.ppt

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

* 例 内存中以BUFFER为首址的缓冲区内有10个非压缩型BCD码形式存放的十进制数,它们的值可能是0~9中的任意一个,将这些十进制数顺序显示在屏幕上。 在屏幕上显示一个字符的方法是: MOV AH,02H ;(AH)←DOS系统功能号(在屏幕上显示) MOV DL,Y ;(DL)←待显示字符Y的ASCII码值 INT 21H ;调用DOS的21H中断 * 编程如下: LEA SI,BUFFER ;(SI)←缓冲区首址 MOV CX,10 ;(CX)←字符串长度 CLD ;清状态标志位DF MOV AH,02H ;(AH)←功能号 GET: LODSB ;取一个BCD码到AL OR AL,30H ;BCD码转换为ASCII码 MOV DL,AL ;(DL)←字符 INT 21H ;显示 DEC CX ;(CX)←(CX) ?1 JNZ GET ;未完成10个字符则重复 HLT * 5) 串送存指令STOS (STOre String) 指令格式: [REP] STOS [ES:]dst_string [REP] STOSB [REP] STOSW STOS将AL或AX的值送存到内存缓冲区的某个位置上。指令的基本操作为: * ① ((ES):(DI))←(AL) (字节操作) 或((ES):(DI))←(AX) (字操作) ② (DI)←(DI)±1 (字节操作) 或(DI)←(DI)±2 (字操作) 其中,当标志DF=0时用“+”,DF=1时用“?”。 STOS对状态标志位没有影响。指令若加上重复前缀REP,则操作将一直重复进行下去,直到(CX)=0。 * 例 一个数据块由大写或小写的英文字母、数字和各种其他符号组成,其结束符是回车符CR(ASCII码为0DH),数据块的首地址为BLOCK1。将数据块传送到以BLOCK2为首地址的内存区,并将其中所用的英文小写字母(a~z)转换成相应的大写字母(A~Z),其余不变。 分析:只需将小写字母的ASCII码减20H,即可得到相应大写字母的ASCII码。程序如下: * LEA SI,BLOCK1 ;(SI)←源地址指针 LEA DI,BLOCK2 ;(DI)←目标地址指针 CLD ;清方向标志DF NEXT:LODSB ;取一个字符到AL CMP AL,0DH ;是否回车符 JZ DONE ;是,则转DONE CMP AL,61H ;否则,是否小于a JC OK ;是,则转OK CMP AL,7BH ;是否大于z JNC OK ;是,则转OK SUB AL,20H ;否则,AL减20H OK: STOSB ;送存 JMP NEXT ;转移到NEXT DONE:HLT ;停止 * 约定以DS:SI寻址源串,以ES:DI寻址目标串,其中源串中的段寄存器DS可通过加段超越前缀而改变,但目标串不可以。 用方向标志规定串处理方向。 SI和DI根据DF自动增/减1或2。 要处理的字符串长度(字节或字数)放在CX寄存器中。 为了加快串运算指令的执行速度,通常在串操作指令前加重复前缀,以对一个以上的串数据进行操作 重复的数据串处理过程可被中断 串操作指令的共同点: * 重复前缀 REP: 无条件重复,常与MOVS连用,连续进行字符串传送操作,直到CX=0。 REPE/REPZ: 相等/结果为零则重复,常与CMPS连用,连续进行字符串比较操作。当两个字符串相等(ZF=1)和CX≠0时,则重复进行比较,直到ZF=

文档评论(0)

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

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

1亿VIP精品文档

相关文档