ZKX's LAB

汇编原理分类统计字符个数 用汇编语言编写程序 :统计一个字符串中某个字母的个数。 求高手啊!!急急急!!!!!!

2021-04-09知识5

汇编语言编程。。统计字符串的字符个数 求助。 data segmentLAD db 'abcdefghijklmn#'MUN dw 0data endsstack segment stackdb 256 dup?stack endscode segmentassume cs:code,ds:data,ss:stackstart:mov ax,datamov ds,axmov ax,stackmov ss,axmov si,offset LADagain:cmp byte ptr[si],'#';如果为#则结束循环je exitinc word ptr[MUN];MUN变量加1inc si;指向下一个字符jmp againexit:mov ah,04chint 21hcode endsend start

用汇编语言统计字符串中每个字符的个数 要简单详细 带解析 code segmentassume cs:codeorg 100hstart:jmp beginstra db 254strn db?strr db 254 dup?arr db 254 dup?arrn db 254 dup(0)begin:push cspop dspush cspop eslea dx,stramov ah,10int 21hlea si,strr;字符串首地址置于silea di,arr;字符串中字符存于的备用首地址置于dimov cl,strn;输入的字符数mov ch,0;mov dx,0;不重复的字符数cld;清方向标志lodsb;装入第一个字符inc byte ptr[di+254];第一个字符计数器增1stosb;存入第1个字符inc dx;dx由0变1dec cx;输入的字符数减11:push cx;保存外循环的cxmov cx,dx;将已统计出的不重复的字符数置于计数器cxlodsb;装入下一个输入的字符到allea di,arr;置不重复的字符保存的首地址repne scasb;只要al与在arr中已保存的不相等则循环扫描je@2;若找到有相同的 转@2lea di,arr;没有找到则是新出现的字符,取arr首地址add di,dx;加上dx后 di指向紧邻的空白处inc byte ptr[di+254];将对应的计数器增1stosb;将新字符保存到空白处inc dx;不重复字符数增1jmp@3;转@32:inc cx;cx指向找到的相同的元素的上一个元素处mov ax,dx;已有元素总数置于axsub ax,cx;计算找到的元素在arr中的相对位置lea 。

用汇编语言 统计字符串中数字个数,只要统计数字的,简单点的 CODE SEGMENTASSUME CS:CODESTR1 DB 'degggdh762836kjwhfd8790237hgfhgsjdhgf65'N DW$-STR1X DW 0START:以下让数据段、附加数据段 与 代码段 同段PUSH CSPOP DSPUSH CSPOP ES以下统计 数字个数MOV X,0LEA SI,STR1MOV CX,NCLD1:LODSBCMP AL,'0'JB@2CMP AL,'9'JA@2INC X2:LOOP@1以下以10进制形式输出MOV AX,XMOV BL,10DIV BLPUSH AXMOV DL,ALOR DL,30HMOV AH,2INT 21HPOP AXMOV DL,AHOR DL,30HMOV AH,2INT 21H以下退出程序,返回dosMOV AH,4CHINT 21HCODE ENDSEND START

#汇编原理分类统计字符个数

随机阅读

qrcode
访问手机版