试编写一个汇编语言程序,从键盘输入一个字符,若该字符是大写字母,在屏幕上输出"upper"(不含双引号)

作者&投稿:登实 (若有异议请与网页底部的电邮联系)
用汇编语言编写程序,从键盘接收一个字符,若该字符是大写字母显示"upper"若是小写字母显示"lower"~

;------------------------------------
PRINT MACRO PARA ; 定义一个显示字符串的宏
LEA DX, PARA
MOV AH, 9
INT 21H
ENDM
;------------------------------------
DSEG SEGMENT
MSG_LOWER DB ' lower', 0DH, 0AH, 24H
MSG_UPPER DB ' upper', 0DH, 0AH, 24H
MSG_NO DB ' no', 0DH, 0AH, 24H
MSG1 DB 'please press a key (press [esc] key to end program): $'
DSEG ENDS
;------------------------------------
CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG
START:
MOV AX, DSEG
MOV DS, AX
;------------------------
LB_1:
PRINT MSG1 ;显示提示信息
MOV AH, 1
INT 21H ;输入一个字符
CMP AL, 1BH ;是[esc]?
JZ EXIT
CMP AL, 'A' ;小于'A'?
JB LB_NO
CMP AL, 'z' ;大于'z'?
JA LB_NO
CMP AL, 'Z' ;小于等于'Z'?
JBE UUU
CMP AL, 'a' ;小于'a'?
JB LB_NO
;------------------
PRINT MSG_LOWER
JMP LB_1
UUU:
PRINT MSG_UPPER
JMP LB_1
LB_NO:
PRINT MSG_NO
JMP LB_1
;------------------------
EXIT:
MOV AX, 4C00H
INT 21H
CSEG ENDS
END START

首先你要说明你用的是什么 每一款的单片机汇编都不一样 而且你的问题也不太具体 这没有办法让人回答啊 是不是
!!呵呵



你说的问题应该在具体一点 多种单片机编程都不一样啊

;------------------------------------
PRINT MACRO PARA ; 定义一个显示字符串的宏
LEA DX, PARA
MOV AH, 9
INT 21H
ENDM
;------------------------------------
DSEG SEGMENT
MSG_LOWER DB ' lower', 0DH, 0AH, 24H
MSG_UPPER DB ' upper', 0DH, 0AH, 24H
MSG_NO DB ' no', 0DH, 0AH, 24H
MSG1 DB 'please press a key (press [esc] key to end program): $'
DSEG ENDS
;------------------------------------
CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG
START:
MOV AX, DSEG
MOV DS, AX
;------------------------
LB_1:
PRINT MSG1 ;显示提示信息
MOV AH, 1
INT 21H ;输入一个字符
CMP AL, 1BH ;是[esc]?
JZ EXIT
CMP AL, 'A' ;小于'A'?
JB LB_NO
CMP AL, 'z' ;大于'z'?
JA LB_NO
CMP AL, 'Z' ;小于等于'Z'?
JBE UUU
CMP AL, 'a' ;小于'a'?
JB LB_NO
;------------------
PRINT MSG_LOWER
JMP LB_1
UUU:
PRINT MSG_UPPER
JMP LB_1
LB_NO:
PRINT MSG_NO
JMP LB_1
;------------------------
EXIT:
MOV AX, 4C00H
INT 21H
CSEG ENDS
END START

PRINT MACRO PARA ; 定义一个宏,用来显示字符串,用宏可以使程序写起方便,并显得干净
LEA DX,PARA
MOV AH,9
INT 21H
ENDM
SSEG SEGMENT PARA STACK 'stack'
DB 1024 DUP(?)
SSEG ENDS
DSEG SEGMENT
MSG_LOWER DB 'lower',0DH,0AH,24H
MSG_NO DB 'no',0DH,0AH,24H
MSG1 DB 'please press a key (press [esc] key to end program):$'
CRLF DB 0DH,0AH,24H
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG ,SS:SSEG
START: MOV AX,SSEG
MOV SS,AX
MOV AX,DSEG
MOV DS,AX
;------------------------
LB_1: PRINT MSG1 ; 显示提示信息
MOV AH,1
INT 21H ; 输入一个字符
PUSH AX
PRINT CRLF
POP AX
CMP AL,1BH ; 是[esc]键吗?
JZ EXIT
CMP AL,61H ;小于字母'a'?
JC LB_NO
CMP AL,7BH ; 大于字母'z' ?
JNC LB_NO
PRINT MSG_LOWER
JMP LB_1
LB_NO: PRINT MSG_NO
JMP LB_1
;------------------------
EXIT: MOV AX,4C00H
INT 21H
CSEG ENDS
END START

程序已经测试,如有其它问题,我们再讨论。希望能对你有帮助


如何用Keil编写汇编语言程序?
1、打开Keil,新建一个51工程,同时新建一个main.c文件,并加入到工程源代码当中。2、再点击新建文件按钮,新建一个汇编语言源文件:test.asm,并将它保存到指定目录。3、在test.asm当中输入下面的代码。4、代码编写完成后,需要将test.asm加入到工程当中,即鼠标右键点击对应工程的源程序文件夹,选择“...

【微机原理】1.汇编语言程序设计(1)
基础定义: 在汇编语言中,我们使用DW(字)来定义数据,如B DW 04H,它表示双字节数据,偏移地址根据前面的存储位置(如A,一个双字节)进行计算。程序结构: 汇编程序由数据段、代码段划分,通过段寄存器如CS、DS、SS来指定内存地址。数据段如DATA SEGMENT,用于存储变量。指令运作: 汇编指令如ADD AX,B...

用汇编语言编写一个小小程序
这个还不简单#include<stdio.h>void main(){ float a,b,c,s;\/*定义数据类型,数据初始化*\/s=(a*b+c)\/a;\/*计算并把计算结果赋值给s*\/printf("s=%f\\n",s);\/*输出计算结果*\/}

汇编语言程序设计步骤有那几步_汇编语言编程步骤有哪些
3、画流程图或结构图有逻辑流程、算法流程、程序流程等,复杂问题需画模块结构 本例简单,只画出程序流程图(用模块化结构的N-S流程图表示):本例的N-S流程图图中初始化包括:设一个计数器,将分数个数减一后送计数器,每比较一次减一,至零查找结束;建立一个指针指向数据区 开始初始化取第一...

试编写汇编语言程序完成两个1位十进制数的加法功能
LEA DX,First_Num ;提示输入第一个1位数字符串地址 Call Get_Num ;从键盘接受一个1位数 CMP Exit_Mark,1 JZ Exit_Proc ;若退出标志置位,则结束程序 MOV SumASCII,AL ;保存第一个1位数 MOV AH,3 XOR BH,BH INT 10H ;取光标位置 INC DH ;行号增1 XOR ...

试编写一个求2+4+8+16...+128的汇编语言程序
[section .text]mov ax,cs mov ds,ax mov es,ax mov ax,2 mov dx,4 C1: ;循环开始前为2+4 add ax,dx shl dx,1 ;左移一次为*2 比如 4*2=8 8*2=16 16*2=32 cmp dx,128 jna C1 ;如果dx 等于或小于128 循环继续 mov ax,04c00h ...

汇编语言程序设计的一般步骤是什么?
汇编语言程序设计的基本步骤 了解了汇编语言指令的功能和用法,了解了汇编语言程序的编写格式,就可以编制完整的汇编语言程序了。一个程序通常具有顺序、分支、循环和子程序4种结构形式。顺序程序结构就是指完全按顺序逐条执行的指令序列。在程序设计过程中,顺序结构大量存在,屡见不鲜。但一个完整的程...

汇编语言 编写一个程序,将AL寄存器中的一位十六进制数转化成ASCII码...
;将AL寄存器中的一位十六进制数转化成ASCII码,显示输出。;推荐答案,写的并非是一位。;程序如下:ASSUME CS:CODE CODE SEGMENT START:MOV AL, 0FH ;在这里可写 00H~0FH,这就是一位16进制数 AND AL, 0FH ;无用位清零,保留该数字 ;下面是变成ASCII码 CMP AL, 0AH JB NEXT ADD...

用汇编语言编写一个程序
print msg1 ;显示“请输入……”lea dx,buffer mov ah,0ah int 21h lea bx,buffer+2 ;下面几句是利用输入串的长度,来找到该串的尾部,以便填写一个'$'用做显示时的结束。mov al,[bx-1]xor ah,ah add bx,ax mov al,24h mov [bx],al print CRLF print msg...

汇编程序(将高级语言转换为机器语言的工具)
汇编程序是一种将高级语言转换为机器语言的工具。在计算机科学中,机器语言是计算机能够理解和执行的唯一语言。高级语言是一种更容易理解和编写的计算机语言,但计算机并不直接理解高级语言。因此,需要使用汇编程序将高级语言转换为机器语言。汇编程序的操作步骤 汇编程序的操作步骤如下:1.编写高级语言程序。

金阊区19785697568: 试编写一个汇编语言程序 要求对键盘输入的小写字母 -
季盼盐酸: ;;从键盘输入字符, ;;若是小写字母显示"This is Lower case letters." ;;若是其它字符不显示 CSEG SEGMENTASSUME CS:CSEG,DS:CSEG MSG DB " This is Lower case letters. $"ORG 200H START: MOV AH, 01HINT 21H...

金阊区19785697568: [汇编语言]由键盘输入任意字符串 然后显示出来 -
季盼盐酸: data segment keyboard db 256,?,256 dup (?) data ends code segment assume cs:code,ds:data main proc far mov ax,data mov ds,ax lea dx,keyboard mov ah,0ah;输入字符串 int 21h lea di,keyboard mov cl,[di+1];取出实际输入字符的个数 mov ...

金阊区19785697568: 编写汇编语言程序段:从键盘输入一个字符串“please input a number”存入BUFF -
季盼盐酸: code segmentassume cs:codeorg 100h start: jmp bbb data db 255 n db ? buff db 255 dup(?) bbb: push cspop dspush cspop eslea dx, datamov ah,10int 21h ; 从键盘输入字符串,字符串的字符个数在n中,串的开始地址为buff首地址...........mov ah,4chint 21h code endsend start

金阊区19785697568: 汇编语言,从键盘输入一字符串 -
季盼盐酸: ;经运行,符合题目要求 code segment assume cs:code,ds:code org 100h start: push cs pop ds Q0:lea dx,Buffer mov ah,9 ;显示提示 int 21h mov si,200h ;硬编码缓冲区首址 mov byte ptr [si],0ffh ;置输入缓冲区大小为255个字符 mov dx,si ;定...

金阊区19785697568: 试编写一个汇编语言程序,从键盘输入一个字符,若该字符是大写字母,在屏幕上输出"upper"(不含双引号) -
季盼盐酸: ;------------------------------------ PRINT MACRO PARA ; 定义一个显示字符串的宏 LEA DX, PARA MOV AH, 9 INT 21H ENDM ;------------------------------------ DSEG SEGMENT MSG_LOWER DB ' lower', 0DH, 0AH, 24H MSG_UPPER DB ' upper', 0DH, ...

金阊区19785697568: 求一个用汇编语言编写的“最简单的”从键盘输入两个数相加,得出结果,,我要完整的程序步骤,,,3Q -
季盼盐酸: data segment op1 dw ? op2 dw ? str1 db 'Please Input The 1st Number ',13,10, '$ ' str2 db 'Please Input The 2st Number ',13,10, '$ ' str3 db 'The Answer Is: ', '$ ' data ends code segment assume cs:code,ds:data start: main proc far push ds...

金阊区19785697568: 编制一个完整的汇编语言程序,从键盘上读入若干个(可以超过十个)十进制数(正数),排序后在屏幕上输出. -
季盼盐酸: 调度通过!DATAS SEGMENT m1 db 'input:$' m2 db 'output:$' m3 db 0dh,0ah,'$' DATAS ENDS STACKS SEGMENT;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,...

金阊区19785697568: 用汇编语言编程,从键盘输入字符串,并将大小写互换,然后显示 -
季盼盐酸: 问题非常多:1. 首先题目就有问题,不可能“接收从键盘输入的字符,以CTR+C 结束”.对于命令提示符来说,按下CTRL+C,就会强行退出这个程序,所以不可能以CTRL+C结束的.应该是按回车结束输入.2. DATA里有中文标点符号.3. ...

金阊区19785697568: 用汇编语言编译一个程序\从键盘输入一个字符串将其每个字符的ASCII码显示在屏幕上 -
季盼盐酸: data segment parastr1 db 'one', '$'str2 db 'Two', '$'str3 db 'Three', '$'str4 db 'four', '$'str5 db 'five', '$'tab dw str1,str2,str3,str4,str5 data ends ssg segment stack dw 256 dup(?) ssg ends code segment para ...

金阊区19785697568: 编写完整的汇编语言程序,要求从键盘输入一个数N,如果N -
季盼盐酸: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49data segmentinmsg db 'Input N(0<N<10):$'crlf db 0dh, 0ah, '$'ermsg db 0dh, 0ah, 'Input Error, Input ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网