实验六 字符串实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验提示: 实验提示:串操作指令常见用法
使用串操作指令注意事项 在串操作指令前须做如下准备工作: 在串操作指令前须做如下准备工作:
串长度送CX 串长度送 设置地址增减方向: 设置地址增减方向:CLD/STD 初始化SI、 串首地址或末地址) 初始化 、DI(串首地址或末地址) 串首地址或末地址
二 实验内容
实验提示: 实验提示:串操作指令常见用法
与REPE、REPNE联合使用的串操作指令 、 联合使用的串操作指令
REPE CMPSB ;(DS:BYTE PTR [SI])-(ES:[DI]) ;(SI) ←(SI)+/-1 ;(DI) ←(DI)+/-1 ;(CX) ←(CX)-1 ;(CX)=0或ZF=0结束 或 结束 REPNE SCASB ;(AL)-(ES:[DI])
六 实验报告
根据题目要求,参考程序框图及编程提 示,编写汇编源代码。 上机编辑源程序,并汇编、连接、调试 运行,查看结果。 写出实验报告。
三 实验提示
编 程 提 示 用串操作指令编程, 用串操作指令编程,在串操作结束后根 据标志位来判断串的大小。 据标志位来判断串的大小。
三 实验提示
部 分 代 码
数据段: 数据段:
data segment str1 db 'university qingdao',00h str2 db 'university qinghua',00h n=$-str2-1 org 40h flag db ? data ends
实验提示(用串操作指令) 三 实验提示(用串操作指令)
流 程 图
实验提示(用串操作指令) 三 实验提示(用串操作指令)
部 分 代 码
代码段: 代码段:
mov ax,data mov ds,ax mov es,ax lea si,str1 lea di,str2 mov cx,n , cld repe cmpsb ja big je equal
题目内容1: 题目内容1
内存STR1和STR2单元分别存放长度相等 和 单元分别存放长度相等 内存 单元分别存放 的两个字符串, 作为结束标志。 的两个字符串,以00H作为结束标志。 作为结束标志 编程比较两个字符串, 编程比较两个字符串,比较结果存放于 FLAG单元。 单元。 单元 如果两串相等, 如果两串相等,FLAG为0; 为 ; 如果STR1>STR2,则FLAG为1; 如果 , 为 ; 如果STR1<STR2,则FLAG为FFH[-1]。 如果 , 为 。
五 实验提示
数据段及附加段: 数据段及附加段:
data segment char db 'a' data ends extra segment str db 'personal computer’,00h n=$-str extra ends
流 程 图
五 实验提示
代百度文库段: 代码段:
部 分 代 码
实验提示: 实验提示:串操作指令常见用法
与REP联合使用的串操作指令 联合使用的串操作指令
REP MOVSB 执行的操作: 执行的操作: ;(ES:BYTE PTR [DI])←(DS:[SI]) ← ;(SI) ←(SI)+/-1 ;(DI) ←(DI)+/-1 ;(CX) ←(CX)-1 ;(CX)=0结束 结束 STOSB ;(ES:[DI])←(AL) ← INSB;(ES:[DI])←((DX)) ← OUTSB ; ((DX))←(DS:[SI]) ←
code segment assume ds:data,es:extra,cs:code start: mov ax,data mov ds,ax mov ax,extra mov es,ax lea di,str mov cx,n mov al,char cld ;串操作地址加1方向 repne scasb jnz nomatch mov dx,n sub dx,cx ;cx内容为剩余字符的数量 mov cx,di ;di指向匹配字符的下一个字符 dec cx jmp exit nomatch:mov cx,0ffffh exit: mov ax,4c00h int 21h code ends end start
small: mov flag, 0ffh
big:
mov flag,1 jmp exit
equal: mov flag,0 exit: mov ax,4c00h int 21h
(ds:【si】)-(es:【di】) 【 】 【 】
jmp exit
四 实验内容
题目内容2: 题目内容2
一字符串以Null(00H)为结束符,存放在 为结束符, 一字符串以 为结束符 为起始地址的单元中。 以ES:STR为起始地址的单元中。一个关键 为起始地址的单元中 字存放在DS:CHAR单元,编程在字符串中 字存放在 单元, 单元 查找第一个与此关键字相同的字符。 查找第一个与此关键字相同的字符。如果 找到,将相应字符在ES段中的偏移地址存 找到,将相应字符在 段中的偏移地址存 放在CX中 放在 中,并将它在字符串中的序号存放 置全1( 在DX,否则 置全 (0ffffh)。 ,否则CX置全 )。
实验六 字符串实验
实验学时:4学时
一 实验目的
熟悉串处理指令使用。 熟悉串处理指令使用。 加深对串操作指令的理解。 加深对串操作指令的理解。 学会使用串操作指令完成对字符串的操作。 学会使用串操作指令完成对字符串的操作。
实验提示
串操作指令(以字节操作为例) 串操作指令(以字节操作为例)
MOVSB ;(ES:BYTE PTR [DI])←(DS:[SI]) ← CMPSB ;(DS:BYTE PTR [SI])-(ES:[DI]) SCASB ;(AL)-(ES:[DI]) STOSB ;(ES:[DI])←(AL) ← LODSB ;(AL)←(DS:[SI]),不能与 ← ,不能与REP连用 连用 INSB;(ES:[DI])←((DX)) ← OUTSB ; ((DX))←(DS:[SI]) ←
相关文档
最新文档