微机实验模版

发布时间 : 星期五 文章微机实验模版更新完毕开始阅读

2.在上题的基础上,再输入以下程序段并运行之,回答后面的问题。

MOV SI,1000H MOV DI,2000H MOV CX,20H REP MOVSB 程序段执行后:

(1) 从DS:2000H开始的16个字单元的内容是什么? 每个字单元内容均为55AA

(2) (SI)= ?(DI)= ?(CX)= ?,并分析之。 SI=1020H,DI=2020H

执行带有无条件重复操作前缀REP的MOVSB指令时,每执行一次传送数据的操作,会自动修改DI指针,此题中是字节传送,所以每次修改量为1,并且CX内容自动减1,从DS:[1000H]为首地址到ES:[2000H]为首地址的传送数据的操作一共执行了10H次,所以 SI=1000H+1*20H=1020H, DI=2000H+1*20H=2020H

3.在以上两题的基础上,再输入以下三个程序段并依次运行之。

程序段1: MOV SI,1000H MOV DI,2000H MOV CX,10H REPZ CMPSW 程序段1执行后:

(1) ZF=? 根据ZF的状态,你认为两个串是否比较完了?

ZF=1,串比较完了,但是无法仅仅从ZF=1来判断,因为条件重复前缀

REPZ重复的条件就是ZF=1,也就是说,当ZF=1时,也可能还没有比较完,还要进行重复比较。

(2)(SI)= ? (DI)= ?(CX)= ?,并分析之。 SI=1020H,DI=2020H,CX=0

执行带有条件重复操作前缀REPZ的CMPSW指令时,每执行一次比较数据的操作,会自动修改DI指针,此题中是字传送,所以每次修改量为2,并且CX内容自动减1,直到ZF=0或CX=0才停止执行比较操作。由于DS:[1000H]为首地址的单元区域与ES:[2000H]为首地址的内存单元区域数据是完全对应相同的,所以ZF始终为1,直到CX=0才结束比较,一共执行了10H次,所以SI=1000H+1*20H=1020H, DI=2000H+1*20H=2020H

联系合同范文客服:xxxxx#qq.com(#替换为@)