用汇编语言设计程序,比较两个字符串str1和str2,找出他们不相匹配的位置,可以使用指令repe cmpsb。
#include "string.h"
#include "stdio.h"
#include "stdlib.h"
char *DelStr(char *str1,char *str2)
{char sz[1000],str[1]={""};
if(strcmp(str1,str2)!=0)
strcpy(sz,str1);
else
strcpy(sz,str);
return strdup(sz);
}
void main()
{ char str1[20],str2[10];
printf("请输入要删除的单词:
");
scanf("%s",str2);
printf("请输入一个句子:
");
scanf("%s",str1);
while(str1!="."||str1!="?"||str1!="!")
{
{printf("%s",DelStr(str1,str2));
printf("%c",32);
}
scanf("%s",str1);
}
}
运行结果
int strposition (char s[], char t[])
{
int i,j,k;
for(i=strlen(s)-strlen(t);i>=0;i--)
for(j=i,k=0;t[k] !='\0' && s[j]==t[k];j++,k++)
;
if(k>0 && t[k]=='\0')
return i;
}
C,C++倒是可以给你写一个。
cld
mov si,offset str1
mov di,offset str2
mov cx,sizeof str1
repe cmpsb
je _Match
mov ax,sizeof str1
sub ax,cx;不匹配,此时ax等于不匹配的位置
stc
ret
_Match: ;完全匹配
clc ;清除进位标志代表完全匹配
ret
汇编语言是一种什么程序设计语言
汇编语言是一种工具程序设计语言,用于将汇编语言源程序转换为机器语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和...
【微机原理】1.汇编语言程序设计(1)
程序结构: 汇编程序由数据段、代码段划分,通过段寄存器如CS、DS、SS来指定内存地址。数据段如DATA SEGMENT,用于存储变量。指令运作: 汇编指令如ADD AX,BX执行有符号数加法,结果存储在AX寄存器,可能产生溢出或负数,这由标志寄存器如CF、OF、SF指示。内存与寄存器: 内存按需分段,寄存器如通用寄存器AX用...
汇编语言程序设计程序结构可分为哪四种
顺序程序结构,分支或选择程序结构,循环程序结构,子程。顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和...
简述用汇编语言进行程序设计的步骤。
汇编语言程序设计步骤:(1)分析问题:已知条件、要解决的问题、功能\/性能要求等。(2)建立数学模型:把问题数学化、公式化,便于计算机处理。(3)确定算法:简单、速度快、精度高、代码量小、编程容易。(4)绘制程序流程图:用箭头、框图、菱形图等表示程序结构。(5)内存空间分配:为程序或数据分配内存空...
汇编语言程序是什么
计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。 1. 机器语言 电子计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机的语言的基础。计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由“0”和“1”组成的指令序列交由计算机...
汇编语言程序设计步骤 有那几步
汇编语言程序设计步骤: 1、 分析问题,抽象出描述问题的数据模型 2、 确定问题的算法思想 3、 画出流程图或结构图 4、 分配存储器和工作单元(寄存器) 5、 逐条编写程序 6、 静态检查,上机调试 例:编程查找考生的最高分,假设所有考生分数已存入计算机内存。 1、 分析问题 根据条件、特点、规律 ...
汇编语言是一种什么程序设计语言?
汇编语言是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。比起机器语言,汇编语言具有更高的机器相关性,更加便于记忆和书写,但又同时保留了机器语言高速度和高效率的特点。...
汇编语言程序设计的一般步骤是什么
一、 上机实验步骤注:以下步骤适用于除汇编语言程序设计的实验一到实验四外的所有实验(实验一到实验四仅使用TD.EXE)。1.确定源程序的存放目录建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。如果没有创建过此目录,请用如下方法创建:通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中...
汇编语言是一种什么程序设计语言
汇编语言是一种用于电子计算机、微处理器、微控制器或其他可编程设备的低级语言,也称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。同时,因为资源的稀缺性,计算机运行的效率也成为那个时代工程师追求的目标。为了更高效地使用计算机,人们设计了高级...
汇编语言程序设计中使用哪种软件工具
全称The Netwide Assembler,是一款基于80x86和x86-64平台的汇编语言编译程序,其设计初衷是为了实现编译器程序跨平台和模块化的特性。3、TASM。Borland公司开发的汇编编译器,被广泛用于Turbo C,Quick Basic等编译器,用作中间过渡编译。它也能独立的编译纯汇编或是Win32Asm的代码。具有编译快速,高效的特点...
蓬丹冠心: 参考:/* Search N bytes of S for C. */#define _HAVE_STRING_ARCH_memchr 1#ifndef _FORCE_INLINES __STRING_INLINE int strcmp (__const char *__s1, __const char *__s2) { char *__p1, *__p2; int __ret; __p1 = (char *) __s1; __p2 = (char *)...
新巴尔虎左旗17160398749: 用汇编语言编写,比较两个字符串,并输出不相等的位置 - ?
蓬丹冠心: data segmentstr db 'the world is beatiful$'len dw $-str-1 ;字符串长度减去最后一个$符号 data ends ext segmentasd db 24 ;用户定义存放100字节的缓冲区 db ? ;系统填入实际输入字符字节数 buf db 24 dup(?), '$' ;存放输入字符的...
新巴尔虎左旗17160398749: 详细解释一段简单的汇编语言程序,比较两个字符串内容的 - ?
蓬丹冠心: DATASEGMENT STR1DB 100 LEN1DB ? DB 100 DUP(?) STR2DB 100 LEN2DB ? DB 100 DUP(?) INFO1DB 0AH,0DH,'input string1:','$' INFO2DB 0AH,0DH,'input string2:','$' INFO3DB 0AH,0DH,'string1=string2:' JUDGDB 20H,20H,20H,'$' ...
新巴尔虎左旗17160398749: 汇编语言编写程序,比较两个字符串所含字符是否相等,如果相等,AX存入1,反之存入0 - ?
蓬丹冠心: data segment stringa db 'abcdefg' stringb db 'abcdefg' data ends;定义字符串A,B用于比较 stack segment dw 20 dup(0) stack ends;设置一个堆栈(可不要) code segment assume cs:code,ds:data,ss:stack start:mov ax,data mov ds,ax mov cx,7...
新巴尔虎左旗17160398749: 用汇编语言设计程序,比较两个字符串str1和str2,找出他们不相匹配的位置,可以使用指令repe cmpsb.?
蓬丹冠心: cldmov si,offset str1mov di,offset str2mov cx,sizeof str1repe cmpsbje _Matchmov ax,sizeof str1sub ax,cx;不匹配,此时ax等于不匹配的位置stcret_Match: ;完全匹配 clc ;清除进位标志代表完全匹配ret
新巴尔虎左旗17160398749: 试编写一个汇编语言程序,要求比较两字符串STRING1和STRI - ?
蓬丹冠心: DATAS SEGMENT str1 db 'hellowo' str2 db 'hellowo' str3 db 'match$' str4 db 'not match$' ;此处输入数据段代码 DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,ES:DATAS START: MOV AX,DATAS MOV DS,AX MOV EX,...
新巴尔虎左旗17160398749: 汇编语言中怎样比较两个字符串的大小,返回大于,小于或都是等于 - ?
蓬丹冠心: 如此设计子程序,这样在其他程序进行调用即可.传入参数:DS:SI指向第一个字符串首地址 ES:DI指向第二个字符串首地址 CX字符串长度 返回参数:AL比较结果,'>'、' 内部操作:DF位清零(CLD) 使用REPE CMPSB指令 在跳出循环后,使用 JE EQUAL JB BELLOW JA ABOVE 来分别给返回参数赋对应的值
新巴尔虎左旗17160398749: 汇编语言比较字符串 - ?
蓬丹冠心: 只写程序段 MOV SI,OFFSET AD1 MOV DS,AX MOV DI,OFFSET AD2 MOV ES,AX CLD MOV CX,CNT ;CNT是字符串的长度 REPE CMPSB 根据CX的值来判断,如果cx=0,则相同,反之,则不同
新巴尔虎左旗17160398749: 汇编语言编写一个判断两个字符串是否匹配的程序. - ?
蓬丹冠心: 1.cmps指令的目的串操作数在ES:DI指定的位置,你没有初始化ES2.DATAS为什么要定义两次?BUF1和BUF2的定义可以在同一个段中定义,只要将段的地址赋值给DS和ES就可以.ASSUME CS:CODES,DS:DATAS,SS:STACKS,es:DATAS START: MOV AX,DATAS MOV DS,AX mov es,ax..........
新巴尔虎左旗17160398749: 汇编语言程序:字符串的比较 - ?
蓬丹冠心: data segmentstr1 db 'mes'str2 db 'mess'str3 db 'match$'str4 db 'not match$' data endscode segmentassume cs:code ,ds:data start:mov ax,datamov ds,axmov es,axmov cx,4mov di,offset str1mov si,offset str2 repz cmpsbjz lab1jnz ...