串操作指令总结 華中科技大浮 (1)源串指针: DS:SI/ESI即源串在当前数据段 (2)目标串的指针: ES:DI/EDI即目的串在当前附加数据段 (3)重复计数器: CX/ECX 4) 中间寄存器: AX/EL/EAX (5)传送/比较方向:DF=0,SI/ESI, DI/EDI自动增量(加1/加 2/加4). DF=0,SI/ESI,DI/EDI自动减量(减1/减 2/减4). (6)指令格式:带操作数: x××S 不带操作数: ×××SD (双字操作) ×××SW(字操作) ×××SB(字节操作)
串操作指令总结 ⑴ 源串指针: DS: SI/ESI 即源串在当前数据段 ⑵ 目标串的指针: ES: DI/EDI 即目的串在当前附加数据段 ⑶ 重复计数器: CX/ECX ⑷ 中间寄存器: AX/EL/EAX ⑸ 传送/比较方向: DF=0, SI/ESI, DI/EDI自动增量(加1/加 2/加4). DF=0, SI/ESI, DI/EDI自动减量(减1/减 2/减4). ⑹ 指令格式: 带操作数: ×××S 不带操作数: ×××SD (双字操作) ×××SW (字操作) ×××SB (字节操作)
串操作指令总结 華中科技大浮 (7)重复前缀: REP 重复执行,直到(CS/ECS)=0;(主要是M0VS指令使用) REPE/REPZ ZF=1时重复执行,直到(CS/ECS)=0;主要时CMPS,SCAS REPNE/REPNZ ZF≠1时重复执行,直到(CS/ECS)=0;指令使用 说明: 循环次数(CX)是否为0是在操作之前检测的,因此,当(CX)为0时不 会引起串操作.操作终止后,SI,DI均指向下一待操作的EA,方向由DF确 定 工作流程
串操作指令总结 ⑺ 重复前缀: REP 重复执行,直到(CS/ECS)=0; (主要是MOVS指令使用) REPE/REPZ ZF=1 时重复执行,直到(CS/ECS)=0; REPNE/REPNZ ZF≠1时重复执行,直到(CS/ECS)=0; 说明: 循环次数(CX)是否为0是在操作之前检测的,因此,当(CX)为0时不 会引起串操作.操作终止后,SI,DI均指向下一待操作的EA,方向由DF确 定. 主要时CMPS,SCAS 指令使用 工作流程
串操作指令总结 華中科技大? 串操作指令工作流程: 源串DS:EA→SI/ESI 目的串ES:EA~D/EDI i串长度-CX/ECX,0/1-DF (CX/ECX)=0? 完成一次串操作 五 (SI/ESI)±1/2/4→s1/Es (DI/EDD±1/2/4→Di/EDi 王 (CX/ECX)-1--CX/ECX REP Y 重复前缀? REPZ/REPNZ REPZ ZF-1? 结束 REPNZ
串操作指令总结
5.2宏功能程序设计 華中科技大? (1)宏定义 (2)宏调用与宏扩展 (3)宏指令中的参数 (4)宏库的使用 (⑤)宏指令与子程序的比较
5.2 宏功能程序设计 ⑴ 宏定义 ⑵ 宏调用与宏扩展 ⑶ 宏指令中的参数 ⑷ 宏库的使用 ⑸ 宏指令与子程序的比较
(1)宏定义 華中科技大浮 宏指令在使用之前要先定义. ●定义格式:宏指令名 MACRO ,形式参数[,形式参数] 宏体 ENDM 例如:某一程序中要多次使用D0S9号功能调用: LEA DX,BUF1 MOV AH,9 int 21H LAE DX,IN_BUF MOV AH,9 INT 21H
⑴ 宏定义 宏指令在使用之前要先定义. ●定义格式: 宏指令名 MACRO 形式参数 [,形式参数] 宏体 ENDM 例如: 某一程序中要多次使用DOS9号功能调用: ┇ LEA DX,BUF1 MOV AH,9 INT 21H ┇ LAE DX,IN_BUF MOV AH,9 INT 21H