汇编语言 编写一个程序,从一个字符串查找ASCII码最大的字符,并将其显示出来

如题所述

第1个回答  2015-11-24
code  segment
      assume cs:code
      org 100h
start:
      jmp bbb
str1  db 250 dup(' ')
num   db ?
char  db ' ','$'
msg1  db 10,13,'please input string:','$'
lfcr  db 10,13,'$'

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 si,str1
      dec cx

      mov al,byte ptr[si]
again2:
      inc si
      cmp al,byte ptr[si]
      jge line2
      mov al,byte ptr[si]
line2:
      loop again2
      mov byte ptr[char],al
      
      lea dx,lfcr
      mov ah,9
      int 21h
      lea dx,char
      mov ah,9
      int 21h
      
      mov ah,4ch
      int 21h
code  ends
      end start

本回答被网友采纳

...输入字符串a,查找字符串中ascii码值最大的字符,并输出
int j;char a[2000],temp;gets(a);temp=a[0];for(j=1;a[j]!='\\0';j++) \/\/扫描一次完成~!if (a[j]>temp)temp=s[j];printf("%c",temp );printf("\\n");}

...\\从键盘输入一个字符串将其每个字符的ASCII码显示在屏幕上
mov ds, ax mov ah, 1 ;键盘输入 int 21h call asc2bin mov bl, al mov bh, 0 dec bx shl bx, 1 mov dx, tab[bx]mov ah, 9 int 21h mov ax, 4c00h Int 21h main endp ;将ASCII转换为二进制数 ;入口:AL存放ASCII ;出口:转换后数值...

从键盘输入一个字符串,,将其所有的字符的ascii码最大值存入max 并将其...
include <stdio.h> include <stdlib.h> define max 100 void main(){ char x[max];printf("input a char:\\n");gets(x);char *p,maxchar;p=x;maxchar=*p;while(*p){ if (*p>maxchar){ maxchar=*p;} p++;} printf("\\n");puts(x);printf("maxchar= %c\\n",maxchar);} ...

编写程序,在字符串str中找出asc码值最大字符,将其放在第一个位置上...
include<string.h> include<stdio.h> void topMax2(char *t){ char *p=t,c;int i=0,m=0,count=0;while(*p){ if(*p>t[m]){ m=i; count=1;}else if(*p==t[m]){ m=i;count++;} i++;p++;} if(m>0){ c=t[m];for(i=m-1;i>=0;i--){ if(t[i]!=c) t[m-...

编写一个程序实现以下功能:从键盘输入一个字符串,找出该字符串中的...
但你似乎是跟字符串中字符的大小有关,我先告诉点相关的:首先字符是可以直接比较大小的,即可以直接输入“a>b”之类的进行大小比较。然后可以通过 max:=s[1];c:=length(s);for i:=1 to c do if s[i]>max then begin max:=s[i];k:=i;end;寻找最大的字符。最后调到第一位,可以...

在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将...
include<stdio.h>#include<string.h>void Change(char* p){ char* pstr = p; char* pMaxCh = p; char cMaxVal = 0; \/* 先查找最大的字符所在位置 *\/ while ('\\0' != *pstr) { if (*pstr > cMaxVal) { cMaxVal = *pstr; pMaxCh = pstr; ...

编程作业:从键盘输入一个字符串,按照ASCII码值从小到大进行排序,输出排 ...
include<stdio.h>void main() { char str[256],c; int i,j,n; gets(str); n=0; while ( str[n]!=0 ) n++; for ( i=0;i<n-1;i++ ) for ( j=i+1;j<n;j++ ) if ( str[i]>str[j] ) { c=str[i]; str[i]=str[j]; str[j]=c; } printf("%s\\...

汇编语言字母转换 从键盘输入一个字符串,将其大写字母变为小写字母并...
JAE L3 JB L5 L3: ADD BYTE PTR[BX],20H L5: INC BL LOOP L4 POP AX POP BX POP CX RET CHANGE ENDP INPUT PROC PUSH CX PUSH BX PUSH AX L1: MOV AH,1 INT 21H MOV BYTE PTR [BX],AL INC BX LOOP L1 POP AX POP BX POP CX RET INPUT ENDP CODE ENDS END START ...

C语言:编写一个程序实现以下功能:在字符串中找出最大的字符并放在第一...
伪码,就是读取字符串每个字符比较并记录下标,得到最大字符和下标 接着申请一个新的字符串,第一个放入最大字符,以后顺序放并跳过记录的下标

用汇编语言,将一个数字的ASCII码值显示出来
对于第1个字符,call htoasc 之后al里面应该是30H(这时候是对的,‘0’的ASCII码正是30H),然后又执行rol al,4,al变成03H了(结果已经错)。03H不是一个可显示字符,call dispc显示的结果当然不对,你应该把call htoasc 之后的rol al,4这行删掉。其实代码里面显示低位的时候就没有rol al,...

相似回答