《串传送指令举例》PPT课件.ppt
《《串传送指令举例》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《串传送指令举例》PPT课件.ppt(12页珍藏版)》请在装配图网上搜索。
串操作指令 举例 程序功能 将BLKS内容为首址的连续N个字节数传送至BLKD内容为首址的存储区 编写此数据块传送程序 分析 1 根据题意 两数据块的相对位置有以下三种情况 两数据块不重叠 从首部或从尾部开始传送均可以 分析 1 根据题意 两数据块的相对位置有以下三种情况 两数据块有部分重叠 且BLKS地址大于BLKD地址 只能从首部开始传送 若从尾部开始传送 则将破坏BLKS数据块中尚未传送的首部数据 分析 1 根据题意 两数据块的相对位置有以下三种情况 两数据块有部分重叠 且BLKS地址小于BLKD地址 只能从尾部开始传送 分析 2 可以用变址寄存器SI指向BLKS所指的字节数 用DI指向BLKD所指的对应的位置 将SI所指的字节数送DI所指的位置 并使SI和DI均指向下一字节 在尚未传送完的情况下转移至完成上述功能的程序段起始位置 直至传送完毕 分配存储空间和寄存器 存储空间 数据段 堆栈段 代码段寄存器 DS SS CSSI 源数据块指针DI 目的数据块指针CX 数据块的字节数BX 步长 1或者 1 程序流程图 程序 数据段 NAMEBLOCH T ASMDSEGSEGMENT 定义数据段ORG 24HSTRGDB THISISAPROGRAM DB FORSTRINGMOVING NEQU STRGDBNDUP BLKSDWSTRG 定义堆栈段BLKDDWSTRG 5DSEGENDS 程序 堆栈段 SSEGSEGMENTSTACK 定义代码段DB80HDUP 0 SSEGENDS 程序 代码段 CSEGSEGMENTASSUMEDS DSEG SS SSEG CS CSEGSTART MOVAX DSEGMOVDS AXMOVCX N CX 数据块字节数 MOVSI BLKS SI指向源数据块首部 MOVDI BLKD DI指向目的数据块首部 MOVBX 1 设置SI DI修正量为1 CMPSI DIJAMOVE 源数据块首址大于目的数据块首址则转MOVE处 ADDSI CXDECSI SI指向源数据块尾部 ADDDI CX DI指向目的数据块尾部 DECDINEGBX 设置SI DI修正量为 1 MOVE MOVAL SI MOV DI ALADDSI BXADDDI BXDECCXJNZMOVE CX 0 表示尚未传送完毕 则转MOVE处继续传送MOVAH 4CHINT21H 返回DOS CSEGENDSENDSTART 用MOVSB指令实现 MOVCX N CX 数据块字节数 MOVSI BLKS SI指向源数据块首部 MOVDI BLKD DI指向目的数据块首部 CLD MOVBX 1 设置SI DI修正量为1 CMPSI DIJAMOVE 源数据块首址大于目的数据块首址则转MOVE处 ADDSI CXDECSI SI指向源数据块尾部 ADDDI CX DI指向目的数据块尾部 DECDISTD NEGBX 设置SI DI修正量为 1 MOVE MOVSB MOVAL SI MOV DI AL ADDSI BX ADDDI BXLOOPMOVE DECCX JNZMOVE CX 0 表示尚未传送完毕 则转MOVE处继续传送 用REPMOVSB指令实现 MOVCX N CX 数据块字节数 MOVSI BLKS SI指向源数据块首部 MOVDI BLKD DI指向目的数据块首部 CLD MOVBX 1 设置SI DI修正量为1 CMPSI DIJAMOVE 源数据块首址大于目的数据块首址则转MOVE处 ADDSI CXDECSI SI指向源数据块尾部 ADDDI CX DI指向目的数据块尾部 DECDISTD NEGBX 设置SI DI修正量为 1 MOVE REPMOVSB MOVAL SI MOV DI AL ADDSI BX ADDDI BX LOOPMOVE DECCX JNZMOVE CX 0 表示尚未传送完毕 则转MOVE处继续传送MOVAH 4CHINT21H 返回DOS- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 串传送指令举例 传送 指令 举例 PPT 课件
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文