




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第05讲8086指令系统 SUB减法指令 指令格式 SUB目的 源指令功能 目的 目的 源 2减法指令 例 SUBAX BXSUBDX 1850HSUBBL BX SBB带借位减法指令 指令格式 SBB目的 源指令功能 目的 目的 源 CF 例 SBBAL CL 指令格式 DEC目的指令功能 目的 目的 1 例 DECALDECBXDECWORDPTR BP DEC减量指令 例 NEGAXNEGBYTEPTR BX NEG取负指令 指令格式 NEG目的指令功能 目的 0 目的 例 CMPAL 80HCMPBX DATA1 指令格式 CMP目的 源 指令功能 将目的操作数与源操作数相减 不回送结果 只根据操作结果置标志位 CMP比较指令 1 判断两个数是否相等ZF 1A BZF 0A B2 判断大小无符号数CF 1A Bb 有符号数符号相同SF 1A B符号不同SF OF 1A B AAS减法的ASCII调整指令 指令格式 AAS 指令功能 非压缩十进制数调整 若AL低4位 9或AF 1则 AL AL 6 AF置1 将AL高4位清0 AH AH 1 CF置1 例 若AL BCD3 CL BCD8 求两数之差 AH 1 SUBAL CLAAS 思考 运算后AX CF DAS减法的十进制调整指令 指令格式 DAS 指令功能 压缩十进制数调整 若AL低4位 9或半进位标志AF 1则AL AL 6 AF 1若此时AL中高半字节结果 9或CF 1则AL AL 60H CF置1 3乘法指令 指令格式 MUL源 不能为立即数 指令功能 若源操作数为字节 则AX AL 源若源操作数为字 则 DX AX AX 源 MUL无符号数乘法指令 例 MULDLMULCXMULB SI MULW BX 例 设在M1和M2单元中各有16位数 求其乘积 将结果存于从R开始的单元中 MOVAX M1 取被乘数 MULM2 两数相乘 MOVR AX 存结果的低16位 MOVR 2 DX 存结果的高16位 指令格式 IMUL源 指令功能 把源操作数和累加器中的数都作为带符号数 进行相乘 注 操作方式与MUL相同 IMUL整数乘法指令 例 IMULBL 4除法指令 DIV无符号数除法指令 指令格式 DIV源指令功能 对两个无符号二进制数进行除法操作 说明 如果源操作数为字节AL AX 源 字节 的商AH AX 源 字节 的余数 如果源操作数为字AX DX AX 源 字 的商DX DX AX 源 字 的余数 例 DIVCLAX被除数 CL除数 结果商在AL中 余数在AH中 DIVBXDX AX被除数 BX除数 结果商在AX中 余数在DX中 说明 专用于有符号数除法 其他与DIV相同 IDIV整数除法指令 指令格式 IDIV源指令功能 对两个有符号二进制数进行除法操作 除法指令的溢出问题 下列情况可能产生溢出除数为零 字节除时 被除数的高8位绝对值 除数绝对值 商 8位 字除时 被除数的高16位绝对值 除数绝对值 商 16位 当产生除法溢出 CPU自动产生 0号 中断 运行相应中断服务程序 程序设计时 应避免产生除法溢出 指令格式 CBW 将AL中的符号扩展到AH中 指令格式 CWD 将AX中的符号扩展到DX中 说明 注意符号扩展涉及的对象是AL和AH以及AX和DX 与其他寄存器无关 用来为有符号数除法准备被除数 16位被除数和32位被除数 CBW把字节转换为字指令 CWD把字转换为双字指令 注意 若ALAH 若AL 80H 则0FFH AH 对DX同理 若AXDX 若AX 8000H 则0FFFFH DX 例如 MOVAL 81HCBWMOVCL 30HIDIVCL 完成16位AX与CL相除 三 逻辑运算和移位指令 1逻辑运算指令 AND逻辑与指令 指令格式 AND目的 源 指令功能 对两个操作数按位进行与操作 结果回送到目的操作数 例 已知AL 46H 将AL中的低4位保留 高4位清除 ANDAL 0FH 指令格式 OR目的 源 指令功能 对两个操作数按位进行或操作 结果回送到目的操作数 例 将AL中的非组合BCD码转换成ASCII码 ORAL 30H OR逻辑或指令 指令格式 XOR目的 源 指令功能 对两个操作数按位进行异或操作 结果回送到目的操作数 相同为0 不同为1 例 XORAL 0FFH 将AL中的内容按位取反XORAL AL 将AL清0 说明 该指令常用于对某个二进制数按位取反 或将某寄存器清0 XOR逻辑异或指令 指令格式 NOT目的 指令功能 对操作数按位进行取反操作 结果回送到该操作数 NOT逻辑非指令 例 NOTAXNOTBLNOTBYTEPTR BX 指令格式 TEST目的 源 指令功能 对两个操作数按位进行逻辑与操作 不回送结果 只根据结果置标志位 例 TESTAX 8000H 测试AX中D15位是否为1 若为1 SF 1 TEST测试指令 一般移位指令 循环移位指令 逻辑左移指令 逻辑右移指令 算术左移指令 算术右移指令 不带进位循环左移指令 不带进位循环右移指令 带进位循环左移指令 带进位循环右移指令 算数逻辑移位指令 指令格式 SAL目的 计数值 指令功能 将操作数内容左移 每移一次 高位移到进位位 低位补0 说明 当移位位数大于1时 将移位位数用CL表示 SAL算术左移 SHL逻辑左移 X CF 0 例 AL原内容为10100101 1 1 左移1位SHLAL 1 2 再左移2位MOVCL 2SHLAL CL 0 指令格式 SHR目的 计数值 指令功能 将操作数内容右移 每移一次 低位移到进位位 高位补0 说明 当移位位数大于1时 将移位位数用CL表示 SHR逻辑右移 X CF 0 例 AL原内容为10010101 1 1 右移1位SHRAL 1 2 再右移2位MOVCL 2SHRAL CL 1 指令格式 SAR目的 计数值 指令功能 将操作数内容右移 每移一次 目的操作数各位右移一位 最低位进入 最高位不变 S R算术右移 例 用SAR指令计算 的程序段如下 MOVAL 10000000BMOVCL 03HSARAL CL ROL循环左移 ROR循环右移 RCL通过进位位循环左移 RCR通过进位位循环右移 指令格式 ROL目的 计数值 例 ROLBX CLRORWORDPTR SI 1 思考 设CF 1 AL 10110100B若执行指令ROLAL 1 则AL CF 若执行指令RORAL 1 则AL CF 若执行指令RCRAL 1 则AL CF 若执行指令MOVCL 3和RCLAL CL 则AL CF 四 字符串处理类指令 数据传送类指令每次只能传送一个数据 若要传送大批数据就需要重复编程 这样就浪费了大量的时间和空间 为此8086提供了一组处理主存中连续存放数据串的指令 这就是字符串处理指令 字符串传送指令 字符串比较指令 字符串搜索指令 读字符串指令 写字符串指令 字符串处理指令包含 说明 1 源串位于当前数据段中 由DS寻址 源串的元素由SI作指针 允许使用段超越前缀来修改段地址 2 目的串由ES寻址 目的串由DI作指针 3 每执行一次串操作后自动修改指针SI DI以便指向下一个待操作的单元 4 DF标志控制字符串方向 DF 0增量 CLD 1 STD 减量 5 要处理的字符串长度放在CX寄存器中 指令格式 MOVS目的串 源串MOVSB 字节传送MOVSW 字传送 指令功能 把由SI作指针的源串中的一个字节或字 传送由DI作指针的目的串中 并自动修改指针SI和DI MOVS字符串传送指令 指令格式 CMPS目的串 源串CMPSBCMPSW 指令功能 从源串中取出一个字节 字 与目的串的一个字节 字相减 不回送结果 并自动修改SI DI 使之指向下一个元素 字符串比较指令前可以加重复前缀REP 表示每比较完一个元素使CX减1 直到CX 0为止 CMPS字符串比较指令 例 比较两个字符串 一个是你在程序中设定的口令串PASSWORD 另一个是从键盘输入的字符串IN WORD 若输入串与口令串相同 程序将开始执行 否则 程序驱动PC机的扬声器发声 警告用户口令不符 拒绝往下执行 DATASEGMENTPASSWORDDB 750430LI IN WORDDB 750424LE COUNTEQU8DATAENDSCODESEGMENTASSUMEDS DATA ES DATA LEASI PASSWORDLEADI IN WORDMOVCX COUNTCLDREPZCMPSB CX 0且串相等时继续比较JNESOUNDOK SOUND CODEENDS 指令格式 SCASBSCASW 指令功能 将AL AX中的关键字 减去由DI所指向的目的串中的元素 不回送结果 根据结果置标志位 并自动修改DI 使之指向下一个元素 若在指令前加重复前缀REPNE REPNZ 表示操作一直进行到ZF 1 找到 或者CX 0 找完 为止 说明 AL AX中存放要找的关键字 SCAS字符串扫描指令 指令格式 STOSB往字节串中存数STOSW往字串中存数指令功能 将AL或AX中的数据送入DI所指的目的串中的字节 或字 存储单元中 即 字节操作 AL DI 字操作 AX DI 修改指针DI 使之指向串中的下一个元素 当DF 0时 DI 增量 当DF 1时 DI 减量 STOS数据串存储指令 指令格式 LODSB从字节串中取数LODSW从字串中取数指令功能 将SI所指的源串中的一个字节 或字 存储单元中的数据取出来送入AL 或AX 中 即 字节操作 SI AL字操作 SI AX 修改指针SI 使它指向串中的下一个元素 当DF 0时 SI 增量 当DF 1时 SI 减量 LODS数据串装入指令 补充 汇编语言上机过程 第一步 编辑源程序 利用文本编辑工具 如edit 编辑源程序 生成一个汇编源程序的纯文本文件 扩展名为 asm 源程序名 hello asm 功能 显示一个字符串dsegsegmentmessagedb howdoyoudo odh oah 24hdsegends 代码段csegsegmentassumecs cseg ds dsegbeginmovax dsegmovds axmovdx offsetmessagemovah 9int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 睢县砂锅开业活动策划方案(3篇)
- 采购泡沫合同范本
- 资产解除合同范本
- 景区活动策划方案烧烤图片(3篇)
- 南宁小升初分班数学试卷
- 2025-2030中国聚苯乙烯泡沫塑料板(XPS)行业盈利模式及需求趋势预测报告
- 梦见准备做数学试卷
- 鲁科版5年级数学试卷
- 南渝中学7年级数学试卷
- 景观广场施工方案(3篇)
- 2026版步步高大一轮高考数学复习讲义第十章 §10.1 计数原理与排列组合含答案
- 人力公司营销策划方案
- 医院医疗用房管理制度
- 股权代持协议终止协议书
- 捡土豆装车合同协议书
- 国际压力性损伤溃疡预防和治疗临床指南(2025年版)解读
- 海天对客户分级管理
- 薪资抵扣协议书模板
- 血管内导管相关性血流感染预防与诊治指南(2025)解读课件
- 人力资源培训:招聘与面试技巧
- aigc培训课件教学课件
评论
0/150
提交评论