用汇编语言编写,判断键盘输入的是否是Y 若输入的是Y则显示YES Y若不是则显示NOT Y

供稿:hz-xin.com     日期:2025-01-13
汇编语言设计:从键盘输入一串字符串,以"#"结束,判断其中有五"$",有显示"YES",无显示"NO,明天就要上机了!

调试通过。
DATAS SEGMENT
mes db 50 dup(0)
mess db 'input : $'
yes db 'yes$'
no db 'no$'
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX

xor dx,dx
xor cx,cx
lea dx,mess ;显示mess
mov ah,9
int 21h

.1:
mov ah,1 ;接收字符
int 21h

cmp al,'#' ;如果等于退出循环
jz .2

cmp al,'$' ;如果是字符'$' cx增1
jnz .1

inc cx

jmp .1
.2:
mov dl,' ' ;显示空格
mov ah,2
int 21h

lea dx,no
cmp cx,5 ;判断cx里的值小于5显示no 否则显示yes
jb .3
lea dx,yes
.3:
mov ah,9
int 21h
mov ah,0
int 16h
MOV AH,4CH
INT 21H
CODES ENDS
END START

DATA SEGMENT
MAXL DB 30
LENGTH DB ?
STRING DB 30 DUP(?)
DATA ENDS
;
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AH,1
INT 21H
CMP AL,'Y'
JE YES
CMP AL,'Y'
JNE NO
YES: MOV DX,OFFSET MAXL
MOV AH,0AH
INT 21H
XOR CX,CX
MOV CL,LENGTH
MOV DX,OFFSET STRING
MOV BX,DX
ADD BX,CX
MOV BYTE PTR[BX],'$'
MOV AH,09H
INT 21H
JMP EXIT
NO: MOV DL,AL
MOV AH,2
INT 21H
JMP EXIT
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END START

先用1号功能输入一个字符,用cmp指令比较,然后分别输出要求的两个字符串。这个程序编写的输入大小写y都能显示“YES Y”,如果只要求输入大写“Y”才输出,就把程序中那行“and al,11011111b”去掉即可。
assume cs:code,ds:data
data segment
yesy db 'YES Y$'
noty db 'NOT Y$'
data ends
code segment
start: mov ax,data
mov ds,ax
mov ah,1
int 21h
and al,11011111b;如果输入的是小写字母,转换成大写
cmp al,'Y'
jz yy
lea dx,noty
jmp disp
yy: lea dx,yesy
disp: mov ah,9
int 21h
mov ax,4c00h
int 21h
code ends
end start

用汇编语言编写,判断键盘输入的是否是Y 若输入的是Y则显示YES Y若不...
先用1号功能输入一个字符,用cmp指令比较,然后分别输出要求的两个字符串。这个程序编写的输入大小写y都能显示“YES Y”,如果只要求输入大写“Y”才输出,就把程序中那行“and al,11011111b”去掉即可。assume cs:code,ds:data data segment yesy db 'YES Y$'noty db 'NOT...

汇编语言,输入一个字符判断是否是数字字符
可以通过ASCII码来判断 将键盘输入的字符存在变量 c 中 if ('a' <= c && c <= 'z') { printf("小写字母\\n"); } else if ('A' <= c && c <= 'Z') { printf("大写字母\\n"); } else if ('0' <= c && c <= '9') { printf("数字\\n...

用汇编语言编写 从键盘接受一个字符,并判断是否为‘Y’
DATA SEGMENT MAXL DB 30 LENGTH DB ?STRING DB 30 DUP(?)DATA ENDS ;CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AH,1 INT 21H CMP AL,'Y'JE YES CMP AL,'Y'JNE NO YES: MOV DX,OFFSET MAXL MOV AH,0AH INT 21H XOR CX,CX M...

汇编语言,输入一个字符判断是否是数字字符
dseg segment msg0 db 0dh,0ah,'Input char is not digital number.$' msg1 db 0dh,0ah,'Input char is digital number.$'dseg endscseg segmentassume cs:cseg, ds:dsegstart: mov ax, dseg mov ds, ax mov ah,1 int 21h ;读入一个字符(al) cmp al,'0' ;判断读入...

键盘输入一个正整数,程式设计判断其是否为素数(即质数)
汇编程式设计:、从键盘输入一个正整数,判断其是否素数。#include<stdio.h> main(){ inta=0;inti;printf("从键盘输入一个正整数:");scanf("%d",&a);for(i=2;i<a;i++)if(a%i==0){ printf("不是素数");break;} if(i==a)printf("是素数");} 由键盘输入一个正整数,判断它是否...

汇编如何判断回车键
回车符的判断,是看该字符的ASCII码是否等于0DH,回车符的意思是跳转到本行开头,如果要跳转到下一行开头,还需要输出一个换行符,其ASCII码为0AH。

试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来...
cmp al,61h ;判断是不是小写字母 jb s2 cmp al,7ah ja s2 sub al,20h ;如果是减20H变成大写并输出 如果不是直接输出不减20H s2:mov dl,al ;输出AL mov ah,2 int 21h jmp s1 s3:mov ah,4ch int 21h 没调试写一下大概思路。

如何编写一个汇编程序,要求“从键盘接收一个四位的16进制数,并在终端上...
编写一个汇编程序,可以从键盘接收一个四位的16进制数,并将其转换为二进制数在终端上显示,其实质上是实现了一个简单的数值转换功能。为了完成这一任务,我们需要在汇编语言中定义一个循环结构,用于接收用户输入的16进制字符,并将其转换为相应的数值。接下来,我们还需要编写一个转换算法,将这个数值...

从键盘输入一个字符,判断是否为A到F之间的字符,如果是,输出“UPCASE...
upcase 的意思是大写,lowcase 的意思是小写,我认为题目的意思是让你将A-F的字符变成A-F,而其他G-Z的字符变成g-z

汇编程序从键盘输入一个字符,判断该字符是小写字母、大写字母、数字或其...
msglf db 0ah, 0dh, '$'msgup db 'a big character.', 0ah, 0dh, '$'msglo db 'a small character.', 0ah, 0dh, '$'msgnum db 'a digit characgter.', 0ah, 0dh, '$'msgot db 'other character.', 0ah, 0dh, '$'dseg ends cseg segment assume ds:dseg, cs:cseg...