小弟初学汇编,汇编问题!!!!

小弟初学汇编,想写一个简单的输入字符串1和字符串2,查找字符串1是否包含字符串2
附上代码data segment
buf1 db 50 dup('$') ;最大字符数50
buf2 db 20 dup('$') ;查找最大字符数20
tishi1 db 'Please input the string:',0dh,0ah,'$'
tishi2 db 'Please input the string you want to find:',0dh,0ah,'$'
tishi3 db 'Find:','$'
tishi4 db 'Not Find:','$'
data ends

code segment
assume cs:code, ds:data

start: mov ax,data
mov ds,ax
mov cx,0
mov bx,0
mov si,2
mov di,2

lea dx,tishi1
mov ah,09h
int 21h         ;输出提示1

lea dx,buf1 
mov ah,0ah  
int 21h         ;输入字符串

mov dl,0ah
mov ah,02h
int 21h         ;回车换行

lea dx,tishi2
mov ah,09h
int 21h         ;输出提示2

lea dx,buf2 
mov ah,0ah  
int 21h         ;输入字符串

mov dl,0ah
mov ah,02h
int 21h         ;回车换行


lea si,buf1+2
lea di,buf2+2
mov ax,0
jmp z

x: inc cx
inc di
y: inc si
z: mov ah,buf1[si]
mov al,buf2[di]
cmp al,'$'
je yes
cmp ah,al
je x

cmp ah,'$'
je no
sub si,cx
sub di,cx
mov cx,0
jmp y           

yes:

lea dx,tishi3
mov ah,09h
int 21h ;输出提示3

lea dx,buf2+2
mov ah,09h
int 21h 

mov dl,0ah
mov ah,02h
int 21h         ;回车换行
jmp exit        

no:
lea dx,tishi4
mov ah,09h
int 21h ;输出提示4

lea dx,buf2+2
mov ah,09h
int 21h 

mov dl,0ah
mov ah,02h
int 21h         ;回车换行

exit: mov ah,4ch
int 21h

code ends
end start

比如输入123412
123
为什么都是not find?

1

2个回答

那个mov si,2和mov di,2是不用写的,刚刚拿来测试用的

0
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
【8086汇编】基础排序之直接插入排序
直接插入排序是一种比较简单的排序。 原理是: 从第二个数开始,依次把每个数当作选定数,在选定数的前面,通过比较大小的方式找到选定数的正确位置, 把该位置之后到选定数之间的数均向后移一位,再通过交换,将选定数放入属于他的位置中 循环上述操作直到对除第一位以外的所有数都操作了一边,即完成排序。 下面我们来看看相应的汇编代码: DATAS SEGMENT ary dw
汇编学习从入门到精通
转载地址:  http://blog.csdn.net/yuhengq/article/details/1867602汇编学习从入门到精通 step by step转载 2007年11月05日 14:25:00标签:汇编 /语言 /assembly /工作 /破解 /编程Cracker,一个充满诱惑的词。别误会,我这里说的是软件破解,想做骇客的一边去,这年头没人说骇客,都是“黑客”了,嘎嘎~公元1...
masm5.0最小简化版本
初学汇编的工具 是那些书中的编译器初学汇编的工具 是那些书中的编译器初学汇编的工具 是那些书中的编译器初学汇编的工具 是那些书中的编译器
常用简单汇编程序整理-适合汇编初学者
常用汇编程序的归类整理,适合汇编语言的初学者
Delphi 与汇编入门
初学 Delphi 嵌入汇编[1] - 汇编语言与机器语言 初学 Delphi 嵌入汇编[2] - 汇编语言关键字 初学 Delphi 嵌入汇编[3] - 第一个 Delphi 与汇编的例子 初学 Delphi 嵌入汇编[4] - 寄存器在过程与函数中的使用 初学 Delphi 嵌入汇编[5] - 寄存器在过程与函数中的使用 - 续 初学 Delphi 嵌入汇编[6] - & 操作符 初学 Delphi 嵌入汇编[7] - 使用常量 初学 Delphi 嵌入汇编[8] - 8 位寄存器、16 位寄存器与 32 位寄存器 初学 Delphi 嵌入汇编[9] - asm 可以代替 begin 初学 Delphi 嵌入汇编[10] - 函数返回值与寄存器 初学 Delphi 嵌入汇编[11] - 用汇编重写一个 Delphi 函数 初学 Delphi 嵌入汇编[12] - 在汇编代码中可以直接使用 Result 初学 Delphi 嵌入汇编[13] - 地址参数用 [] 取值 初学 Delphi 嵌入汇编[14] - 常量与变量在汇编中的一个区别 初学 Delphi 嵌入汇编[15] - 需要保护的寄存器 初学 Delphi 嵌入汇编[16] - 进制的表示方法 初学 Delphi 嵌入汇编[17] - 逻辑运算 初学 Delphi 嵌入汇编[18] - SHL 与 SHR 初学 Delphi 嵌入汇编[19] - Delphi 的无符号整数类型 初学 Delphi 嵌入汇编[20] - Delphi 的 Integer 类型 初学 Delphi 嵌入汇编[21] - Delphi 的其他整数类型 初学 Delphi 嵌入汇编[22] - 在汇编代码中使用记录 初学 Delphi 嵌入汇编[23] - LOOP 循环 初学 Delphi 嵌入汇编[24] - 汇编语言的简单数据类型 初学 Delphi 嵌入汇编[25] - 在汇编中调用函数 初学 Delphi 嵌入汇编[26] - 大小写字母转换 初学 Delphi 嵌入汇编[27] - XCHG 指令: 交换寄存器的内容 初学 Delphi 嵌入汇编[28] - 把 EAX 的值置为 0 的三种方法与效率 初学 Delphi 嵌入汇编[29] - 寄存器所能接受的数值范围 初学 Delphi 嵌入汇编[30] - 寄存器表
初学汇编之Debug命令
由于本人的系统是win10的,老师让装虚拟机,偷个懒就没装,装了一个 masm for windows 集成环境包,事实证明,这个比较方便而且,和命令行的差距就是命令行需要键入mam xxx.asm 等等的语句,本人也有兼容windows 64位系统的命令行,不必装虚拟机, 需要的读者可以在下面留言 装载的过程很简单,就是傻瓜式安装, 然后点开输入代码 保存运行,然后最重要的就是debug环境,让
汇编语言入门:源程序(二)
真的,马上就可以编写一个完整的汇编源程序了 标号,程序返回…… 标号 一个标号指代了一个地址 codesg:放在segment的前面,作为一个段的名称,这个段的名称最终将被编译、连接程序处理为一个段的段地址(说明:这里codesg只是作为栗子,至于具体怎么命名随便);相当于Perl的句柄 程序返回 在一个程序结束后,将CPU的控制权交还给使得它得以运行的程序,这个过程叫...
ubuntu下构建汇编环境学习汇编的简单方法
首先是WINE兼容RadASM,RadASM是设置在WINDOWS下环境的一个汇编IDE,使用WINE在UBUNTU下可以直接运行,这个IDE支持多种编译器,支持语法高亮 sudo apt-get install wine  (官方软件源即可) 在RadASM连接出来的文件是 exe,使用DOSBOX即可运行调试 sudo apt-get install dosbox 官方软件源有
初学Win32汇编的参考书籍及开发环境
参考书籍1:Iczelion的Win32汇编教程 参考书籍2:罗云彬的Windows 环境下32位汇编语言程序设计(第2版) 开发环境:RadAsm
各位大佬,小弟初学汇编
各位大佬,小弟初学汇编,请问BCD码的调整指令重要吗?如AAA,AAS,AAD之类的东西
麻烦下大牛了,小弟初学汇编...
以下代码适用于实现两个数相加,但是编译总是不通过,我用MASM有一个warning,用MASMPlus甚至还出现了说 start 没有定义,我想了好几天都不知道为什么,请各位帮帮忙吧,谢谢!rnrnrnrndata segmentrnx DB ?rny DB ?rnstring1 db 'x=','$'rnstring2 db 'y=','$'rnstring3 db 'x+y=','$'rndata endsrnrn;stack segmentrn;dw 100 dup(?)rn;stack endsrnrnrncode segmentrnmain proc farrnassume cs:code,ds:datarnrnSTART:rnrnpush dsrnsub ax,axrnpush axrnrnrnmov ax,datarnmov ds,axrnlea dx,string1rnmov ah,9rnint 21hrnrnmov ah,1rnint 21hrnsub al,30hrnmov x,alrnrnrnlea dx,string2rnmov ah,9rnint 21hrnrnmov ah,1rnint 21hrnsub al,30hrnmov y,alrnrnrnsub al,alrnmov al,xrnadd al,yrnrnlea dx,string3rnmov ah,9rnint 21hrnrnmov dx,alrnmov ah,9rnint 21hrnrnrnmain endprncode endsrnend startrn
小弟初学汇编,求教程。
本人,初次接触汇编语言。rnrn用的是NASMrnrn请各位推荐一些,适合初学的简单的汇编语言教程。
ARM汇编语言学习笔记
ARM处理器一共有37个寄存器 包括31个通用寄存器,包括PC,都是32位的寄存器,6个状态寄存器,也都是32位寄存器 有其中不同的模式,用户模式,快速中断模式,普通中断模式,管理模式,数据访问终止 模式,未定义终止模式,系统模式,每一个模式都对应一组相应的寄存器,有些是共用的, 有些是私有的,寄存器R0-R3主要用与子程序间的参数的传递,R4-R7保存局部变量,R12 用作子程序间sc
WIN32汇编语言中位图的使用
说到位图,我们其实很早就接触过,从最早接触计算机,我们应该就知道有图片这个东西,然后再进一步说,图片在电脑上有好几种格式比如jpg. gif .png.
初学 Delphi 嵌入汇编[3]
初学 Delphi 嵌入汇编[3],delphi与汇编混编开发技术系列
汇编语言(第二版)—王爽
经典的汇编入门教材 适合想初学汇编 值得学习。。
汇编语言二三事(遇到的各种问题,bug)——不断更新中
一、上机环境 DOSbox -0.74(64位) 编辑程序:EDIT.COM或其他文本编辑工具软件,用于编辑源程序。 汇编程序:MASM.EXE,用于汇编源程序,得到目标程序。 连接程序:LINK.EXE,用于连接目标程序,得到可执行程序。 调试程序:DEBUG.EXE,用于调试可执行程序。 二、上机过程 汇编语言程序上机操作包括:编辑、汇编、连接和调试几个阶段。 1.编辑源程序 用文本编辑软件创...
STM8S105汇编例程
ST芯片S105的汇编历程,适用于初学ST的汇编应用
汇编程序上机实践指导
汇编的上机指导实验,对于初学汇编的人有所帮助。
初学 Delphi 嵌入汇编[4
初学 Delphi 嵌入汇编[4],delphi与汇编混编开发技术系列
汇编学习从入门到精通 step by step
 Cracker,一个充满诱惑的词。别误会,我这里说的是软件破解,想做骇客的一边去,这年头没人说骇客,都是“黑客”了,嘎嘎~公元1999年的炎热夏季,我捧起我哥留在家的清华黄皮本《IBM-PC汇编语言程序设计》,苦读。一个星期后我那脆弱的小心灵如玻璃般碎裂了,为了弥补伤痛我哭爹求妈弄了8k大洋配了台当时算是主流的PC,要知道那是64M内存!8.4G硬盘啊!还有传说中的Celeon 300A
汇编语言之Debug教程篇
参考书籍《汇编语言》——王爽 Debug的命令比较多,这里我介绍常用的命令,其余的等需要的时候再进行查询。 命令 用途 Debug-R 查看、改变CPU寄存器的内容 Debug-D 查看内存中的内容 Debug-E 改写内存中的内容 Debug-U 将内存中的机器指令翻译成汇编指令 Debug-T 执行一条机器指令...
ARM 汇编基础速成1:ARM汇编以及汇编语言基础介绍
译文声明本文是翻译文章,文章原作者,文章来源:azeria-labs.com原文地址:https://azeria-labs.com/writing-arm-assembly-part-1/译者:arnow117预估稿费:200RMB投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿写在前面欢迎来到ARM汇编基础教程,这套教程是为了让你可以在ARM架构下进行漏洞利用打基础的。在我...
51汇编指令集详解
数据传递类指令     以累加器为目的操作数的指令        MOV A,Rn        MOV A,direct        MOV A,@Ri        MOV A,#data    第一条指令中,Rn代表的是R0-R7。第二条指令中,direct就是指的直接地址,而第三条指令中,就是我们刚才讲过的。第四条指令是将立即数data送到A中。
汇编实验10-2 解决除法溢出的问题
代码及注释: ;本程序主要意图为制作一个子程序,实现32位被除数/16位除数因为16位寄存器不够储存 ;而产生除法溢出的情况(如FFFFFFFF/1,16位寄存器ax储存不了32位数据) ;子程序的实现过程在书中实验的提示给了算法,在理解的基础上写出程序即可 ;以下为程序 assume cs:code,ss:stack stack segment db 16 dup (0) stack end
小弟初学汇编 请教一下编译器问题
请问除了masm外 还有其他的编译器可用吗? 就像类似vc那样方便的 谢谢了!!!
汇编语言系列教程之基础入门 (一)
汇编语言系列教程之基础入门 (一) http://www.cnblogs.com/flyor/p/7208948.html机器字长  机器字长是指CPU一次运算所能处理的数据的位数,一般来说这个数的和CPU的通用寄存器长度、数据总线的宽度等相等,在8086中为16bit。由于历史原因,x86系列的CPU生产较早,所以这一系列的机器字长以8086的机器字长为代表,8086的机器字长为16bit,...
汇编语言 : 解决除法溢出的问题
简介 : 设计一个不会产生溢出的除法运算 1. 被除数 32 字节 2. 除数 16 字节 3. 商 32 字节 4. 余数 16 字节 代码 : assume cs:code,ds:data,ss:stack data segment data ends stack segment db 16 dup(0) stack ends c...
汇编中遇到的问题
1.汇编中对名字项要求比较灵活,不过不允许以数字开头2.当程序顺序执行时,每取一条指令,IP指针增加的值有指令长度决定,且指向下一条指令的首地址3.MOV指令有关:    1)不允许段寄存器间直接数据传送:mov ds,es    ;非法        不允许向段寄存器传立即数:MOV DS,2000H    ;非法    2)不允许储存单元间直接数据传送:mov [si],[di]    ;非法...
如何用汇编语言解决汉诺塔问题……
请高手帮忙了……如题……  …… 最好是程序代码加上分析步骤……
nasm和masm的差别(珍珠)
在masm中的宏调用中有一个本地函数 格式:local      形式参数 功能:在宏扩展时候,宏汇编程序自动的为其后的形参顺序生成特殊符号(范围在??0000~??FFFFH),并用这些特殊符号取代宏体中的形参,从而避免符号重复定义的错误 local语句必须放在宏体中的第
汇编入门小例子
:HelloWorldDATA SEGMENT str db ‘Hello World′;要输出的字符串必须要以' ;要输出的字符串必须要以结尾 DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA ;将CS和CODE,DS和DATA段建立联系 START: MOV BX,DATA MOV DS,BX
汇编语言之大小写转换
欢迎关注博主的公众号:薛定谔的小鱼儿将datasg中的第一个字符转换为大写,第二个字符转换为小写assume cs:codesg,ds:datasgdatasg segment    db 'BsSIc'    db 'iNFOrMAtiOn'datasg endscodesg segment    start: mov ax,datasg              mov ds,ax      ...
初学汇编
今天下了个汇编编译器 用有写了个程序 程序名为 prg1.asm 并且编译连接运行都通过了. 然而我在"开始/运行"里输入DEBUG prg1.exe 命令的时候 却总是提示"file not found" 不知道是怎么回事rn 再就是用反汇编命令 反汇编出来的代码 为什么跟原代码有很大的差别啊 都看不太懂 请指教
汇编初学
汇编:使用工具dedtbug 。 需要配置 :options下的appearance  32位通用寄存器: EAX,EBX,EDX,ECX,ESP EBP ESI EDI   MOV是到的意思:存 打开以后左上窗口是反汇编窗口,左下是内存窗 口,右上是寄存器窗口,右下是堆栈。
初学汇编。。
小弟初学汇编,希望大家给推荐基本汇编比较新的书籍,还有汇编用那个编译器?谢谢!
初学汇编!
rn看什么书比较好!有三年delphi基础rnrn要注意些什么!rnrn写硬件驱动是什么样一个概念,想往这个方向发展!
汇编 初学
最简单的汇编程序.section .data.section .text.globl _start_start:movl $1, %eax movl $4, %ebx int $0x80 解释: movl $1, %eax这是一条数据传送指令,这条指令要求CPU内部产生一个数字1并保存到eax 寄存器中。mov 的后缀l表示long,说明是32位的传送指令。这条指令不要求CPU读内存,1这个...
初学汇编……
请教各位~我刚刚开始接触汇编,要用哪个版本的masm呢?谢诸位~
王爽《汇编语言》实验10.2——解决除法溢出的问题
王爽《汇编语言》实验10.2——解决除法溢出的问题 被除数位dword型,除数为word型, 结果为dword型。
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 大数据初学 云计算初学