标题:汇编 顺序结构程序
只看楼主
小木木囡
Rank: 1
等 级:新手上路
威 望:1
帖 子:9
专家分:5
注 册:2016-11-29
结帖率:0
已结贴  问题点数:20 回复次数:2 
汇编 顺序结构程序
实验内容
查找字母“s”在字符串string中第一次出现的位置,找到后替换为大写的S。假设string字符串为:“a string for testing.”。

注意大小写字母主要是ASCII码的区别,小写s的ASCII码是73h,大写S的ASCII码是53h。将小写转换为大写的算法为小写ASCII码减去20h,即为大写字母。
实验报告要求
写出自己的实验结果、收获与真实的实验体会。画出程序流程图,写出源程序.

data  segment
      string db "A string for testing.";定义一个字符串,该字符串的首地址为string
      strend db ?
data  ends
code  segment
      assume ds:data,cs:code
start:mov ax,data
      mov ds,ax;为数据段赋值
      mov es,ax;使数据段与附加段重叠
      cld ;清方向标志df
      mov di,offset string;将字符串首地址赋给目的变址寄存器di
      mov al,"t";将要查找的字符送累加器dl
      mov cx,strend-string;计算出字符串的长度送计数器cx
      repne scasb;重复执行字符串查找指令
      jz find
      mov bx,0;没找到,使bx=0
      jmp exit
find: dec di;找到了
      mov bx,di;将"t"字符所在地址送bx
exit:mov ah,4ch;返回DOS操作系统
     int 21h
code ends
     end start
搜索更多相关主题的帖子: 字符串 源程序 流程图 实验报告 testing 
2017-05-04 21:22
小木木囡
Rank: 1
等 级:新手上路
威 望:1
帖 子:9
专家分:5
注 册:2016-11-29
得分:0 
求大神啊

加油!
2017-05-04 21:40
Valenciax
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:11
帖 子:337
专家分:2462
注 册:2016-5-15
得分:20 
楼主的代码和题目要求有差异,修改几处就是了。

Search_Char equ "s"

data  segment
      string db "A string for testing.";定义一个字符串,该字符串的首地址为string
      str_len equ $ - offset string ;取長度
data  ends
code  segment
      assume ds:data,cs:code
start:mov ax,data
      mov ds,ax;为数据段赋值
      mov es,ax;使数据段与附加段重叠
      cld ;清方向标志df
      mov di,offset string;将字符串首地址赋给目的变址寄存器di
      mov al,Search_Char;将要查找的字符送累加器al
      mov cx,str_len;计算出字符串的长度送计数器cx
      repne scasb;重复执行字符串查找指令
      jnz exit ;找不到
      and byte ptr [di-1],05fh ;找到了,将该字节转成大写
   
exit:mov ah,4ch;返回DOS操作系统
     int 21h
code ends
     end start





2017-05-05 22:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-476702-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.150267 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved