第一范文网 - 专业文章范例文档资料分享平台

微机实验模版

来源:用户分享 时间:2025/6/7 7:18:06 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

程序段2:

MOV [2008H],4455H MOV SI,1000H MOV DI,2000H MOV CX,10H REPZ CMPSW 程序段2执行后:

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

ZF=0,根据ZF=0可判断结束比较的原因是不满足前缀所要求的条件,即两个比较的串出现不相等数据

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

SI=100AH,DI=200AH,CX=0BH

执行带条件重复前缀REPZ的串比较指令时,ZF=0或者CX=0都会结束比较。由于对ES:[2008H]字单元重新赋值,使得顺次比较时,与DS:[1008H]字单元的内容不再相等,ZF=0,不满足前缀条件REPZ,则结束比较。题中找到不相等的数据4455h后,结束比较可知共执行比较操作次数为5次,每执行一次操作,DI和SI自动按字量修改长度,减2,CX减1,所以SI=1000H+2*5D=100AH,DI=2000H+2*5D=200AH,CX=10H-5=0BH

程序段3: MOV AX,4455H MOV DI,2000H MOV CX,10H REPNZ SCASW 程序段3执行后:

(1) ZF=? 根据ZF的状态,你认为在串中是否找到了数据4455H?

ZF=1,只有找到关键字时才会有ZF=1,从而不满足前缀条件,退出REPNZ SCASW串循环,

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

SI=100AH,DI=200AH,CX=0BH

SCASW指令是将AX中的值与目标串ES:[DI]中的值进行比较,所以SI不发生变化。ES:[2008H]=4455H,与AX中数据相等,所以比较到ES:[2008H]后,结束比较,共比较5次,DI=2000H+2*5D=200AH,CX=10H-5D=0BH。

4.从DS:1000H开始存放有一个字符串”This is a string”,要求把这个字符串从后往前传送到DS:2000H开始的内存区域中(即传送结束后,从DS:2000H开始的内存单元的内容为”gnirts a si sihT”),试编写程序段并上机验证之。

data segment str db 'This is a string'; add your data here! pkey db \ends stack segment dw 128 dup(0) ends code segment start: ; set segment registers: mov ax, data mov ds, ax mov es, ax mov ss, ax lea ax,str

mov bx,1000h mov si,ax mov di,bx mov cx,10h rep movsb mov di,0fh mov si,0 mov cx,10h move: mov bp,1000h mov bx,2000h mov al,[bp][si] mov [bx][di],al inc si dec di dec cx jnz move lea dx, pkey mov ah, 9 int 21h ; output string at ds:dx ; wait for any key.... mov ah, 1 int 21h mov ax, 4c00h ; exit to operating system. int 21h ends end start ; set entry point and stop the assembler.

搜索更多关于: 微机实验模版 的文档
微机实验模版.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3jpm035tfk7f1wk0kiew_8.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top