333逻辑运算和移位指令内容摘要:

假定 DS、 ES都已设置为 数据段的段基址。 程序见下页。 1000H 3000H 12 34 56 78 32H 31H 34H 33H 36H 35H 38H 37H 18 MOV SI,1000H ; SI←BCD 首址 MOV DI,3000H ; DI←ASCII 首址 MOV BX,4 ; 置计数器初值 BBB: MOV AL,[SI] ; AL←BCD 码 ,第一次取 12H AND AL,0FH ; 屏蔽高 4位 →02H OR AL,30H ; 转换为 ASCII码 → 32H STOSB ;保存结果 LODSB MOV CL,4 SHR AL,CL ; 逻辑右移 4位 OR AL,30H ; 得到高 4位 ASCII码 STOSB ;保存结果 DEC BX ; (BX)←(BX) 1 JNZ BBB ; (BX)≠0 ,则继续循环 19 作业 P152P153 、 、 、 、 、 20 串操作指令 串:顺序放在内存中的一组相同类型的数据。 串操作: 对串中的元素进行相同的操作。 串操作的寻址方式: 源操作数指针 ——— DS:SI(DS可超越 ) 目的操作数指针 —— ES:DI 每次串操作后 : 串操作指令自动修改 SI和 DI—— 字节 177。 1,字 177。 2。 DF标志决定 177。 (注意:退出串操作后,指针指向最后操作的元素的下一个元素 ) 可完成两个存储单元之间的传送和比较操作(也仅是串指令可以) 21 重复前缀 有的串操作指令前面可加上 重复前缀 REP。 当使用 REP前缀时, 该指令重复执行, 重复执行次数由 CX决定(带有 REP前缀的 串操作指令每执行一次, CX自动减 1)。 重复前缀 包括: REP CX≠0 时重复执行 REPE/REPZ CX≠0∧ ZF=1时重复执行 REPNE/REPNZ CX≠0∧ ZF=0时重复执行 22 串指令使用的一般方法 设置源串地址 设置目标串地址 设置串长度 设置操作方向 DF 串指令 MOV SI, 源串首地址 (或 LEA SI, 源串) MOV DI, 目的串首地址 (或 LEA DI, 目的串) MOV CX, 串长度 CLD(或 STD) 《 串指令 》 23 指令执行的操作为: MOVSB: ((ES):(DI))←((DS):(SI)) SI177。 1, DI177。 1 MOVSW: ((ES):(DI+1)(DI))←((DS):(SI+1)(SI)) SI177。 2, DI177。 2 指令也可写成: MOVS dest,src 但要求: ① src用 DS:SI寻址 ,dest用 ES:DI寻址 ② 传送是字节还是字 ,由操作数的类型决定 ⒈串传送指令 MOVSB / MOVSW 24 串传送指令使用举例 用串传送指令实现 200个字节的数据传送: LEA SI, MEM1 LEA DI, MEM2 MOV CX, 200。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。