程序例 MOV SI 1000H PUSH CX MOV DI3000H MOV CL,4 MOV CX4 SHR AL CL BBB: MOVAL[S工] OR AL 30H MOV BLAL I MOV [DIAL AND AL, OFH 1 INC DI OR AL 3OH INC SI POP CX MOV IDIAL DEC CX INcD工 程序 JNZ BBB MOVALBL 功能? HLT
26 程序例 MOV SI,1000H MOV DI,3000H MOV CX,4 BBB :MOV AL,[SI] MOV BL,AL AND AL,0FH OR AL,30H MOV [DI],AL INC DI MOV AL,BL PUSH CX MOV CL,4 SHR AL,CL OR AL,30H MOV [DI],AL INC DI INC SI POP CX DEC CX JNZ BBB HLT 程序 功能?
程序功能 将1000H开始存放的 四个压缩BCD码转换 10012H 为ASCI码存放在 34H 3000H开始的单元中 56H 78H 去 3000H
27 程序功能 ◼ 将1000H开始存放的 四个压缩BCD码转换 为ASCII码存放在 3000H开始的单元中 去。 ┇ ┇ 12H 34H 56H 78H ┇ 1000H 3000H
四、串操作指令 ■针对数据块或字符串的操作; 可实现存储器到存储器的数据传送; ■待操作的数据丰称为源串,目标地址称为 目标串
28 四、串操作指令 ◼ 针对数据块或字符串的操作; ◼ 可实现存储器到存储器的数据传送; ◼ 待操作的数据串称为源串,目标地址称为 目标串
串操作指令的特点 源串一般存放在数据段,偏移地址由SI指定。 允许段重设; 目标串必须在附加段,偏移地址由DI指定; ■指令自动修改地址指针,修改方向由DF决定。 DF=0→增地址方向;DF=1→减地址方 向 数据块长度值由CX指定; 可增加自动重复前缀以实现自动修改CX内容
29 串操作指令的特点 ◼ 源串一般存放在数据段,偏移地址由SI指定。 允许段重设; ◼ 目标串必须在附加段,偏移地址由DI指定; ◼ 指令自动修改地址指针,修改方向由DF决定。 DF=0 增地址方向;DF=1 减地址方 向; ◼ 数据块长度值由CX指定; ◼ 可增加自动重复前缀以实现自动修改CX内容
串操作指令流程 取源串地址 传送一个字节或字 取目标串地址 llllllllllllI 修改地址指针 设串长度 修改串长度值 传送完否?
30 串操作指令流程 取源串地址 取目标串地址 设串长度 传送一个字节或字 修改地址指针 修改串长度值 传送完否?