题目:从屏幕接入一个字符串,统计空格个数,并把个数输出 用汇编语言写 急!急!急!

如题所述

code  segment
      assume cs:code
      org 100h
start:
      jmp bbb
str1  db 250 dup(' ')
num   db ?
msg1  db 10,13,'please input string:','$'
x     db 0
y     db 10,13,0,0,0,'$'

bbb:
      push cs
      pop ds
      lea dx,msg1
      mov ah,9
      int 21h

      MOV cx,0
      lea di,str1
again1:
      mov ah,1
      int 21h
      cmp al,13
      je line1
      mov byte ptr[di],al
      inc cx
      inc di
      jmp again1
line1:
      mov byte ptr[num],cl
      
      
      lea bx,str1
      dec bx
l1:
      inc bx
      cmp byte ptr[bx],20h ;检查是否空格
      jne l2
      inc byte ptr[x]      ;空格计数
l2:
      loop l1
      

      mov al,byte ptr[x]
      mov ah,0
      mov cl,10
      div cl
      mov byte ptr[y+4],ah  ;保存个位
      mov ah,0
      div cl
      mov byte ptr[y+3],ah  ;保存十位
      mov ah,0
      mov byte ptr[y+2],al  ;保存百位

      mov al,byte ptr[y+2]
      add al,30h            ;百位转ASC2
      mov byte ptr[y+2],al

      mov al,byte ptr[y+3]
      add al,30h            ;十位转ASC2
      mov byte ptr[y+3],al

      mov al,byte ptr[y+4]
      add al,30h            ;个位转ASC2
      mov byte ptr[y+4],al

      mov ah,9
      lea dx,y
      int 21h

      mov ah,4ch
      int 21h
code  ends
      end start

温馨提示:内容为网友见解,仅供参考
无其他回答

用汇编语言编程:从键盘输入一行字符,统计字母、空格、数字、其他字符的...
PARS DB 100 ;准备接收100个字符.NNN DB ? ;用于存放实际输入的个数.III DB 100 DUP(?) ;100字节的空间.N_N DB ?S_N DB ?C_N DB ?O_N DB ?MESG1 DB 13, 10, 'Input STR : $ ' ;用于提示.MES_C DB 13, 10, 'Char N is : $ ...

用8086汇编语言编写程序,从键盘输入一段字符,以#结束,统计其中数字,字母...
为了简便,直接使用了21中断的输入字符串子功能,即使你不输入#作为结束符,也可以使用。统计时,则将'#'后面的字符忽略正确的作法,是调用21中断的1号子功能,每次读取一个字符,直到读取到'#'为止。这个修改很简单,我就不再写了。data segment buf db 255 ; db ? db 255 dup('$') ...

用汇编语言试编写程序,从键盘输入字符以回车结束,统计输入的字符个数...
MOV DS, AX MOV DX, OFFSET MSG1 ;提示输入. MOV AH, 09H INT 21H MOV DX, OFFSET IN_1 ;接收键盘输入. MOV AH, 0AH INT 21H MOV DX, OFFSET CRLF ;回车换行. MOV AH, 09H INT 21H MOV DX, OFFSET BUFF ;输出原字符串. MOV AH, 09H INT 21H MOV DX, OFFSET MSG2 ;提示长度. MOV AH...

用汇编语言实现键盘输入一段字符串,统计小写字母个数并显示
mov ah,1 ;设功能号,接收键盘字符,回显int 21h ;dos中断cmp al,13h ;识别回车,有就退出je donecmp al,'a'jb nextccmp al,'z'ja nextcinc cx ;找到一个小写字母jmp nextc done:;以下显示CX的数值STDmov bx,10 ;十进制mov di,offset buf+12 ; 要倒序存放mov al,'$'STOSB ;置结束符mov ax,cx...

怎么用汇编语言编写一个程序,统计字符串的长度并输出
mov di, offset MSG1 ;循环比较字符串中的每个字符,并把统计值放在AX中 MYLOOP:cmp byte ptr[di], bl jz EXIT inc di inc ax jmp MYLOOP EXIT:push ax ;显示提示内容 movdx,offset MSG1 movah,9h int21h pop ax call printlen mov ah,4ch int 21h ;打印出长度,长度保存在AX里 prin...

用8086汇编语言编写程序键盘输入一段字符以#结束,统计其中数字、字母...
byte 256 dup(0)stack ends data segment C1 dw 0 ;空格数 C2 dw 0 ;数字数 C3 dw 0 ;字母数 C4 dw 0 ;其它字符数 BUFF db 64, 0, 64 dup(?) ;接收输入缓冲区,BUFF[0]存储缓冲区大小,BUFF[1]存储实际输入数,BUFF[2]开始为输入的数据 SHEX DB '0123456789ABCDEF...

...编程实现测试一字符串中空格符的个数,并将个数存放到COUNT变量中...
string db 'gssgsjjh sgd sjdg aduq 878ABC 7'len equ $-string count db 0 ..mov cx,len mov bx,offset string next:mov al,[bx]cmp al,' 'jne no_1 inc count no_1:inc bx loop next

8086汇编语言输出字符串中空格个数的程序
ssss db "how do you do ? "space db ?mov si,offset ssss xor al,al mov cx,18 mov al,[si]again: cmp al,20h jz next inc bx loop again jmp next2 next: inc al inc bx loop again next2: mov space ,al hlt ,很简单的,

编程题: 输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个...
1 while语句:include<stdio.h> int main(void){ \/\/输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。char ch;int char_num=0,kongge_num=0,int_num=0,other_num=0;while((ch=getchar())!='\\n')\/\/回车键结束输入,并且回车符不计入 { if(ch>='a'&&ch<='z'||...

用8086汇编语言编写一个输入字符串的程序
AH, 9INT 21HJMP LOOP1LOOP3:; 判断 SHIFT 键MOV DL, ALCMP DL, 0EHJNE LOOP2MOV DX, OFFSET SPACESMOV AH, 9INT 21HJMP LOOP1LOOP2:; 判断 ESC 键MOV DL, ALCMP DL, 1BHJE EXIT; 显示字符MOV DL, ALMOV AH, 02HINT 21HJMP LOOP1EXIT:MOV AH, 4CHINT 21HCSEGENDSEND BEGIN ...

相似回答