8周参考:常用指令(串操作程序控制指令处理器控制指令).pptVIP

  • 5
  • 0
  • 约9.45千字
  • 约 49页
  • 2017-02-28 发布于湖北
  • 举报

8周参考:常用指令(串操作程序控制指令处理器控制指令).ppt

8周参考:常用指令(串操作程序控制指令处理器控制指令)

2.3.4 串操作指令 重复前缀 有的串操作指令前面可加上重复前缀REP。当使用REP前缀时,该指令重复执行,重复执行次数由CX决定(带有REP前缀的串操作指令每执行一次,CX自动减1)。 重复前缀包括: REP CX≠0 时重复执行 REPE/REPZ CX≠0∧ZF=1时重复执行 REPNE/REPNZ CX≠0∧ZF=0时重复执行 串指令使用的一般方法 ⒈串传送指令MOVSB / MOVSW 串传送指令使用举例 用串传送指令实现200个字节的数据传送: LEA SI,MEM1 LEA DI,MEM2 MOV CX,200 CLD REP MOVSB HLT ⒉串比较指令CMPSB / CMPSW ⒊串扫描SCASB / SCASW 执行的操作: 对字节:(AL)-((ES):(DI)) DI±1 对字: (AX)-((ES):(DI+1)(DI)) DI±2 搜索指令执行的仍是比较(减法)操作,结果只影响标志位。 要搜索的关键字放在AL(字节)或AX(字)中。 本指令用于在串中查找指定的信息。 例:在ES段的偏移1000H开始处存有10个ASCII码。搜索’E’,若找到则记下搜索次数及存放地址,并在屏幕上显示’Y’;若未找到则显示’N’。(见右图) 在屏幕上显示一个字符的 指令段如下: MOV DL,字符 MOV AH,2 INT 21H 实现题目要求的程序段调试 MOV DI, 1000H ;(DI)←串偏移地址 MOV CX, 0AH ;(CX)←串长度 MOV AL, ’E’ ;搜索关键字=’E’ CLD ;从低地址到高地址进行搜索 REPNZ SCASB ;若未找到, 继续搜索 JZ FOUND ;找到, 转至FOUND MOV DL, ’N’ ;串中无’E’,(DL)←’N’ JMP DONE ;转至DONE FOUND:DEC DI ;指针回退 MOV ADDR, DI ;ADDR←’E’的地址 SUB DI, 1000H INC DI MOV NUM, DI ;NUM←搜索次数 MOV DL, ’Y’ ;(DL)←’Y’ DONE: MOV AH, 2 INT 21H ;显示字符 HLT ⒋串装入指令LODSB / LODSW ⒌串存储指令STOSB / STOSW 例1:把从A000H开始的2KB内存单元清零。 程序段如下: MOV DI,0A000H MOV AX,0 MOV CX,1024 CLD REP STOSW 2.3.5 程序控制指令 控制转移指令分为: 转移指令 循环控制指令 调用和返回指令 中断指令 1.转移指令 ① 段内直接转移 ②段内间接转移 转移的目标地址由寄存器或存储单元的内容给出。 例1:JMP SI 若(SI)=1200H,则指令执行后,(IP)=1200H,于是转向代码段的偏移地址1200H处开始执行。 注意:目标地址以段内偏移的形式给出,而不是相对于IP的位移量,所以它是一个16位的操作数。 例2:JMP [BX+DI] 设指令执行前: (DS)=3000H,(BX)=1300H,

文档评论(0)

1亿VIP精品文档

相关文档