文档库 最新最全的文档下载
当前位置:文档库 › 微机原理课程设计大小写字母转换

微机原理课程设计大小写字母转换

微机原理课程设计大小写字母转换
微机原理课程设计大小写字母转换

目录

摘要................................................................................................................................ I Abstract ......................................................................................................................... II 1 原理. (1)

1.18086的内部结构 (1)

1.28086的指令系统 (2)

1.3汇编语言程序设计 (6)

1.4报警声音生成 (7)

2程序设计 (9)

2.1程序设计流程图 (9)

2.2程序代码 (10)

2.3运行结果分析 (13)

3心得体会 (14)

参考文献 (15)

摘要

在课程设计之前,具备微机原理的理论知识和实践能力;熟悉汇编语言编程技术;熟悉80X86的CPU结构和指令系统;熟悉相关常用接口电路的设计使用方法是必不可少的。因此原理部分重新温习并整理了相关知识。

课程设计要求进行大小写字母的转换。其实字母大小写的区别在于他们的ASCII码范围,它们之间的转换其实就是加减相应的ASCII码值。在判断输入的字母是大写的还是小写的(即判断输入符号ASCII码在41H~5AH还是在61H~7AH内)之后,决定判断是加上还是减去ASCII码值。另外如果输入的不是字母(输入字符对应ASCII码值不在41H~5AH或61H~7AH内),则需要报警提示,这不但涉及到用汇编语言实现发声的方法,而且对计算机硬件的了解也有要求,因此原理部分加入了部分有关声音产生的硬件知识。

Abstract

Prior to the course design, computer principles with theoretical knowledge and practical ability; familiar with assembly language programming techniques; familiar with the 80X86 the CPU architecture and instruction; familiar with the use of common interface circuit design is essential. Therefore, some re-principle study and collate the relevant knowledge.

Curriculum design, uppercase and lowercase letters requested conversion. In fact, the difference between the case of letters lies in their ASCII code range, the conversion between them is actually plus or minus the value of the corresponding ASCII code. In determining the input is uppercase or lowercase letters (that is to determine input symbols in the ASCII code 41H ~ 5AH or 61H ~ 7AH inside), the decision to determine a plus or minus the value of ASCII code. Also, if not the letter of the input (input characters corresponding to ASCII code value is not 41H ~ 5AH or 61H ~ 7AH inside), you need to alarm, not only related to using assembly language to achieve sound approach,But also have knowledge of computer hardware requirements, thus adding some of the principles of some of the sound generated by the hardware knowledge.

1 原理

1.1 8086的内部结构

80x86从功能上分执行单元EU(Execution Unit),和总线接口单元BIU(Bus Interface Unit),执行单元由算术逻辑单元(ALU)、标志寄存器、通用寄存器组和EU控制器等部件组成。

指令执行部件EU由算术逻辑单元、标志寄存器、通用寄存器和EU控制器等部件组成。

主要功能是执行指令:

一般顺序执行,EU不断地从指令队列中取指令连续执行,而省去访问存储器取指令的时间。

需要访问存储器取操作数时,EU将访问地址送给BIU后,将要等待操作数到来后才能继续操作;

遇到转移类指令时,要将指令队列中的后续指令作废,等待BIU重新从存储器取出目标地址中的指令代码进入指令队列后,EU才能继续执行指令。

算术逻辑单元(ALU)完成16位或8位的二进制运算;16位暂存寄存器用来暂存参加运算的操作数。运算结果通过内部总线送到通用寄存器组或BIU的内部寄存器中等待写入存储器。经ALU运算后的结果特征置入标志寄存器中保存

EU控制器负责从BIU的指令队列中取指令,并对指令译码;根据指令要求向EU 内部各部件发出控制命令以完成各条指令的功能。

总线接口单元由地址加法器、专用寄存器组、指令队列缓冲器和总线控制电路等部件组成;

主要功能是形成访问存储器的物理地址,负责与外部(存储器或I/O接口)打交道。

正常情况下,BIU通过地址加法器形成指令的物理地址,从给定存储器地址中取出指令代码送指令队列缓冲器中等待执行(指令队列缓冲器中出现一个空字节,BIU将自动进行读指令的操作填满队列)。

收到EU送来的操作数地址,BIU将立即形成操作数的物理地址,完成读/写操作数或运算结果功能。遇到转移类指令,BIU将指令队列缓冲器中的尚存指令作废,重新从存储器目标地址中取指令送指令缓冲器中。

指令队列可存放6字节的指令代码。一般情况下指令队列中总是填满指令,使EU可不断地得到执行的指令。

16位地址加法器专门用来完成由逻辑地址变换成物理地址的功能。实际上是进行一次地址加法,将两个16位的逻辑地址转换为20位的物理地址,以达到可寻址1M字节的存储空间。

总线控制电路将8086CPU的内部总线与外部总线相连,是8086CPU与外部交换数据的必经之路。包括16条数据总线、20条地址总线和若干条控制总线。程序装载到内存中后通过16位数据线确定各个段地址,开始取出指令(内存中读字节),放到指令队列,队列出口通过EU控制器执行指令并同时影响IP(指令指针移动指令长度,或通过指令执行后影响IP。

1.2 8086的指令系统

8086全部指令按功能可分成六大类 :

①数据传送类

一般格式 MOV OPRD1,OPRD2

MOV 是操作码,OPRD1和OPRD2分别是目的操作数和源操作数。

功能完成数据传送。

堆栈指令

包括入栈(PUSH)和出栈(POP)指令两类。仅能进行字运算。(操作数不能是立即数)

(1) 入栈指令 PUSH

一般格式 PUSH OPRD

功能将数据压入堆栈

(2) 出栈指令POP

一般格式 POP OPRD

功能将数据弹出堆栈

累加器专用传送指令

有三种,输入、输出和查表指令。前两种又称为输入输出指令。

(1) IN 指令

一般格式 IN AL,n ; B AL←[n]

IN AX,n ; W AX←[n+1][n]

IN AL,DX ; B AL←[DX]

IN AX,DX ; W AX←[DX+1][DX]

功能从I/O端口输入数据至AL或AX。

(2) OUT 指令

一般格式 OUT n,AL ; B AL→[n]

OUT n,AX ; W AX→[n+1][n]

OUT DX,AL ; B AL→[DX]

OUT DX,AX ; W AX→[DX+1][DX]

功能将AL或AX的内容输出至I/O端口。

②算术运算类

加法指令 (Addition)

(1) 一般形式 ADD OPRD1,OPRD2 ;功能 OPRD1←OPRD1+OPRD2

(2) 一般形式 ADC OPRD1,OPRD2;带进位的加法;功能 OPRD1←OPRD1+OPRD2 +CF

(3) 一般形式 INC OPRD ;功能 OPRD←OPRD+1

减法指令(Subtraction)

(1) 一般形式 SUB OPRD1,OPRD2 ;功能 OPRD1←OPRD1-OPRD2

(2) 一般形式 SBB OPRD1,OPRD2 ;功能 OPRD1←OPRD1-OPRD2-CF

(3) 一般形式 DEC OPRD ;功能 OPRD←OPRD-1-CF

③逻辑运算类

逻辑运算指令

(1) 一般格式 NOT OPRD

功能对操作数求反,然后送回原处,操作数可以是寄存器或存储器内容。

(2) 一般格式:AND OPRD1,OPRD2

功能对两个操作数进行按位的逻辑“与”运算,结果送回目的操作数。

(3) 一般格式 TEST OPRD1,OPRD2

功能完成与AND指令相同的操作,结果反映在标志位上,但并不送回。通常使用它进行测试,

(4) 一般格式 OR OPRD1,OPRD2

功能对指定的两个操作数进行逻辑“或”运算。结果送回目的操作数。

(5) 一般格式 XOR OPRD1,OPRD2

功能对两个指定的操作数进行“异或”运算,结果送回目的操作数。

④串操作类

重复指令前缀

串指令

⑤程序转移类

无条件转移、调用和返回指令

(1) 无条件转移指令JMP 分直接转移和间接转移两种。

一般格式: JMP OPRD ;OPRD是转移的目的地址

直接转移的3种形式为:

短程转移 JMP SHORT OPRD ;IP=IP+8位位移量

目的地址与JMP指令所处地址的距离应在-128~127范围之内。

近程转移 JMP NEAR PTR OPRD ;IP=IP+16位位移量

或 JMP OPRD ;NEAR可省略

目的地址与JMP指令应处于同一地址段范围之内。

远程转移 JMP FAR PTR OPRD ;IP=OPRD的段内位移量,CS=OPRD所在

段地址。

远程转移是段间的转移,目的地址与JMP指令所在地址不在同一段内。执行该指令时要修改CS和IP的内容。

间接转移指令的目的地址可以由存储器或寄存器给出。

段内间接转移 JMP WORD PTR OPRD ;IP=[EA] (由OPRD的寻址方式确定)。

JMP WORD PTR[BX] IP=((DS)*16+(BX))

JMP WORD PTR BX IP=(BX)

段间间接转移 JMP DOWRD PTR OPRD;IP=[EA],CS=[EA+2]

该指令指定的双字节指针的第一个字单元内容送IP,第二个字单元内容送CS。

JMP DWORD PTR [BX+SI]

(2) 调用和返回指令

CALL指令用来调用一个过程或子程序。由于过程或子程序有段间(即远程FAR)和段内调用(即近程NEAR)之分。所以CALL也有FAR和NEAR之分。。因此RET 也分段间与段内返回两种。

调用指令一般格式为:

段内调用 CALL NEAR PTR OPRD ;

操作 SP=SP-2,((SP)+1),(SP))=IP,IP=IP+16位位移量

CALL指令首先将当前IP内容压入堆栈。当执行RET指令而返回时,从堆栈中取出一个字放入IP中。

段间调用 CALL FAR PTR OPRD ;

操作 SP=SP-2,((SP)+1),(SP))=CS;SP=SP-2,((SP)+1),(SP))=IP;IP=[EA];CS=[EA+2]

CALL指令先把CS压入堆栈,再把IP压入堆栈。当执行RET指令而返回时,从堆栈中取出一个字放入IP中,然后从堆栈中再取出第二个字放入CS中,作为段间返回地址。

返回指令格式有:

RET ;SP=((SP+1),SP),SP=SP+2

RET n ;SP=((SP+1),SP),SP=SP+2 SP=SP+n

RET n指令要求n为偶数,当RET正常返回后,再做SP=SP+n操作。

⑥控制类

循环控制指令loop

1.3汇编语言程序设计

汇编:计算机不能直接识别和执行汇编语言程序,而要通过“翻译”把源程序译成机器语言程序(目标程序)才能执行,这一“翻译”工作称为汇编。汇编有人工汇编和计算机汇编两种方法。

汇编语言是面向机器的,每一类计算机分别有自己的汇编语言。汇编语言占用的内存单元少,执行效率高,广泛应用于工业过程控制与检测等场合。

汇编语言语句格式

标号:操作符操作数;注释

START: MOV A, 30H ;A←(30H)

标号用来标明语句地址,它代表该语句指令机器码的第一个字节的存储单元地址。

标号一般规定由1~8个英文字母或数字组成,但第一个符号必须是英文字母。

注释只是对语句或程序段的含义进行解释说明,以方便程序的编写、阅读和交流,简化软件的维护,一般只在关键处加注释。

伪指令:伪指令只用于汇编语言源程序中,对汇编过程起控制和指导的作用,不生成机器码。汇编结束,自动消失。

汇编语言程序设计步骤

(1)分析问题

(2)确定算法

(3)设计程序流程

(4)分配内存单元:分配内存工作单元,确定程序和数据区的起始地址。(5)编写汇编语言程序

(6)调试程序:

1.4报警声音生成

早期的PC系列机中有一个专门用于定时的集成电路,型号是8253/8254。它有三个通道,第一个通道用于控制系统时钟正常运转;第二个通道用于存储器刷新;这两个通道与我们现在讨论的问题无关。第三个通道通过一组电路与喇叭相联。

定时器通道3的G端与61H端口的bit0位相联,如果将61H端口的bit0

位置成1,那么定时器通道3就被启动,此时将有一组信号从OUT端输出,信号的频率可以用程序控制;若61H端口bit0位为0,则定时器被关闭,OUT端就会恒定为1

此电路用在这里相当一个"可控开关",如果将61H端口的bit0、bit1位都置成1,则相当于既打开了定时器又打开了开关,这时候定时器产生的声音信号就会送到放大器推动喇叭发声;若将bit0位置0,则定时器关闭,此时OUT端为1,这时候如果连续改变bit1位的状态,也可以从喇叭中听到声音若将bit1位置0,则开关关闭,此时即使打开定时器也不能听到声音。

PC中的定时电路有三个通道,通道3用于发声,通道1用于控制系统内部的时钟。大家都十分清楚用DOS的"TIME"命令可以观察并修改系统内部的一个时钟,这个时钟之所以能连续运转主要依靠定时器的通道1。

通道1的工作方式和通道3一样,但是系统启动时设定其发出一个频率固定为18.2Hz的信号,这个信号直接送到系统中的"中断控制器"。每一个"Hz"都产生一个硬件中断,一般称这个硬中断为"IRQ0",对应的中断号是08H。也就是说,当计算机启动后,我们的机器看上去十分平静,但实际上CPU非常忙碌。在定时器的控制下每隔55毫秒就要执行一个08H号中断,这个中断的主要工作就是连续地计数。

在内存"0040H:006CH"处有四字节的存储空间专门用于保存计数值,CPU每执行一次08H中断,这四字节的计数值就被加1,不难算出这个计数值每增加1091后时间恰好过了1分钟,每增加65454后时间恰好过了1小时。系统内部的时钟之所以能准确走时,靠得就是08H中断和这四字节的计数值。因此我们要想精确的定时,必须依靠时钟计数值才行。

2程序设计

2.1 程序设计流程图

图2.1

N Y

开始

array 首地址→bx

从键盘接受字符

输入字

母?

大写转小写 小写转大写 回车换行输出

结束 报警

2.2 程序代码

从从键盘输入一串英文字符,若是小写字符则转换成大写字符在下一行输出,若是大写字符则转换成小写字符在下一行输出,若不是英文字符则显声响报警

;--------------------------------------------------------------------; 实现英文字母的大小写转换

;--------------------------------------------------------------------code segment;代码段

assume cs:code,ds:code

org 100h;从100h开始

start:jmp begin ;跳到begin

p1 db100

p2 db0

array db100h dup(?) ;置100个字节的缓冲区存放数据

begin:

lea bx,array ;将array的首地址给bx

mov ax,cs;置cs-->ds

mov ds,ax

mov dx,offset p1 ;将p1的偏移量给dx

mov ah,0ah;调用中断21的0a号功能从键盘接收字符

int21h

xor bx,bx;将bx清零

mov bl,p2 ;p2-->bl

mov array[bx],'$' ;送'$'至字符串尾

mov di,0ffffh;-1-->di

next: inc di;di自加

cmp array[di],'$' ;比较

je exit ;相等,则跳到exit执行

cmp array[di],41h;(A~Z-->41h-5ah a~z-->61h-7ah)与A比较

jl exit1 ;小于,则跳

cmp array[di],5ah;与Z比较

jg next1 ;大于,则跳

add array[di],20h;加20h,大写转小写

jmp next

next1:

cmp array[di],'$' ;比较

je exit ;相等,则跳到exit执行

cmp array[di],61h;(A~Z-->41h-5ah a~z-->61h-7ah)与a比较

jl next ;小于,则跳

cmp array[di],7ah;与z比较

jg exit1 ;大于,则跳

sub array[di],20h;减20h,小写转大写

jmp next

disp:

loop next

exit: mov p1,0dh;回车换行

mov p2,0ah

mov ah,09h

int21h

jmp begin

exit1: mov p1, 0dh

mov p2, 0ah

call sound ;调用发声子程序

call sound

call sound

call sound

jmp begin

mov ah,4ch;程序结束

int21h

sound proc

push ax

push dx

mov dx, cx

in al,61h

and al,11111100b;使第0,1位为0

trig: xor al,2;使第1位翻转 PB的低两位为3,即使输出有效

out61h,al

mov cx,bx

delay:loop delay

dec dx

jne trig

pop dx

pop ax

ret

sound endp

code ends

end begin

2.3 运行结果分析:

当输入字母串ABCDEFabcdef后,按回车键转换为abcdefABCDEF,结果如下图2.2所示

图2.2

当输入非英文字母时,按下回车键后发出滴滴的报警声,实现程序功能。

3心得体会

一直以为自己微机原理的水平不错了,直到着手做课程设计才不得不承认,自己的理论知识并不扎实,对于许多指令和一些基本的编程方法都掌握不清晰。于是,为了顺利完成课程设计,我又拿起课本,用心的阅读,重新掌握了相关的知识。由此看来,知识只有在实践中才能真正掌握。难怪人们说汇编语言编程必须在使用中慢慢理解。

因为本学期做了许多微机原理的实验,这次要用汇编语言来实现大小写字母的转换,所以自己一开始感觉这会非常的简单。直到真正的理解相关原理,要编写程序实现的时候,才发现,自己对汇编程序的了解确实还不够,尤其是编程方面的能力有待提高。在不断地再次学习和理解过程中,我慢慢掌握了更多汇编语言的应用知识,更为值得骄傲的是,自己在参考程序的辅助下顺利编写出了大小写字母转换的程序。总结起来,自己发现,编程必须在应用过程中才会更加牢固。想想自己大三上学期做过的上机实验也不少,个把月不用,就一下子生疏了,因此我感觉对于重要的知识,偶尔复习下还是很有必要的,正所谓温故而知新。

把编写好的程序输入软件时候,出现了许多小问题,比如句子没有加逗号,没有定义变量等等。归纳起来都是因为编程掌握不牢固,写程序没有条理,加上自己粗心大意的恶习依旧没改正造成的,以后需要努力改正。

总的来说,这次课程设计,自己受益匪浅。不但加固了微机原理部分知识的理解,而且加强了对汇编语言的应用能力。

参考文献

[1] 姚燕南,薛钧义主编.微型计算机原理.第四版.西安:西安电子科技大学出版社,2003

[2]潘峰主编.微型计算机原理与汇编语言.第三版.西安: 电子工业出版社,2003

[3] 雏逢兴编著.计算机硬件技术基础.北京:高等教育出版社,1998

[4] 王永山等编著.微型计算机原理与应用.西安:西安电子科技大学出版社,1999

[5] 舒贞权等编著.Intel 8086/8088系列微型计算机原理.西安:西安交通大学出版社,1993

将小写字母转换成大写字母

/*将小写字母转换成大写字母*/ #include main() { char a; printf("请输入一个小写字母:\n"); scanf("%c",&a); a=a-32; printf("输出的大写字母:%c\n",a); } /*输入菱形几何图案*/ #include main() { int i,j,width; printf("输入最大的菱形宽度值:\n"); scanf("%d",&width); for(i=1;i<=width;i++) { for(j=1;j<=i;j++) printf("*"); printf("\n"); } for(i=1;i<=width;i++) { for(j=1;j<=i;j++) printf(" "); for(j=i;j<=width-1;j++) printf("*"); printf("\n"); } }

还有另一种 /*输出菱形图案*/ #include #include main() { int n,i,j,k; printf("请输入奇数"); scanf("%d",&n); for(i=1;i<=(n+1)/2;i++) { for(j=(n-(2*i-1))/2;j>=0;j--) printf(" "); for(k=1;k<=2*i-1;k++) {printf("*");} printf("\n"); } for(i=1;i<=(n-1)/2;i++) { for(j=0;j<=i;j++) printf(" "); for(k=1;k<=n-2*i;k++) printf("*"); printf("\n"); } system("pause"); }

英文字母大小写转换程序设计 (2)

摘要 (1) 数制转换 (2) 1 DOS功能调用介绍 (2) 2 设计方案 (5) 3 总程序 (6) 4 程序流程图及程序设计分析 (13) 4.1主程序流程图 (13) 4.2主程序流程图分析 (14) 4.3大小写转换子程序ABC (14) 4.3.1 子程序ABC (14) 4.3.2 子程序ABC的流程图 (16) 4.3.3 子程序ABC流程图分析 (16) 4.4ASCII码转换子程序CBA (17) 4.4.1 子程序CBA (17) 4.4.2 子程序CBA的流程图 (18) 4.4.3 子程序ABC流程图分析 (18) 5 程序运行实例 (19) 5.1大小写转换 (20) 5.2ASCII码转换 (20) 5.3输入非字符 (21) 5.4调试中出现的错误 (21) 6 心得体会 (23) 参考文献 (24)

摘要 汇编语言是直接面向处理器(Processor)的程序设计语言。处理器是在指令的控制下工作的,处理器可以识别的每一条指令称为机器指令。每一种处理器都有自己可以识别的一整套指令,称为指令集。处理器执行指令时,根据不同的指令采取不同的动作,完成不同的功能,既可以改变自己内部的工作状态,也能控制其它外围电路的工作状态。汇编语言的主要特点是可以使用助记符来表示机器指令的操作码和操作数,可以用标号和符号来代替地址、常量和变量。这次课程设计的任务是用汇编语言进行一个数制转换,从键盘输入一串字符(非字符则不接受),通过屏幕提示菜单选择转换成ASCII码,或者进行大小写转换(原来是大写转换成小写,小写则转换为大写)并显示。先输入要转换的数据,再对数据进行检验判断其合法性,对不合法的数据进行警报并重新输入数据,对合法的数据按照要求进行大小写转换或者转换成ASCII,码,最后显示转换后的字符串。 关键词:DOS功能调用 ASCII码大小写转换

字母大小写转换训练

一、按格式、按字母顺序、按要求默写26个字母。 二、请给下面的大小写字母连线。 Q W E R T Y U I O P A S D p q s a d o w i e u r y t ______________________________________________________________________________ F G H J K L Z X C V B N M l k m n f g j z h x c v b 三、根据给出的大写字母写出相应的小写字母。 Q W E R T Y U I O P A S D F G H J K L Z X C V B N M

四、根据给出的小写字母写出相应的大写字母。 m n b v c x z l k j h g f d s a p o i u y t r e w q 五、根据前后字母写出所缺字母。 (1)Aa Bb ______ Dd ______ ____ Gg ______ Ii Jj Kk _____ _______ ______ Oo Pp _____ ______ Ss Tt Uu Vv Ww _______ _______ ________ (2)_____ _____ C ____ E F ____ _____ I J _____ L ____ _____ O P ____ ______ _____ T _____ _____ W X _____ ______ (3)a ____ _____ _____ e ____ _____ _____ i j k l ____ _____ ______ _____ _____ r s _____ u v w ____ _____ _____ 六、请根据下面的印刷体写出手写体。 Aa Ee Ff Gg Ii Jj Kk Ll Pp Qq Rr Tt Uu Xx Yy 7、写出下列字母的大写字母 b() h() e() d() n()

键盘英文字母大小写对照表

鍵盤__英文字母大小寫__對照表

认识键盘 整个键盘分为五个小区:上面一行是功能键区和状态指示区;下面的五行是主键盘区、编辑键区和辅助键区。

对打字来说,最主要的是熟悉主键盘区各个键的用处。主键盘区包括26个英文字母,10个阿拉伯数字,一些特殊符号外,还附加一些功能键: o[Back Space] ——后退键,删除光标前一个字符;

o[Enter] ——换行键,将光标移至下一行首; o[Shift] ——字母大小写临时转换键;与数字键同时按下,输入数字上的符号; o[Ctrl]、[Alt] ——控制键,必须与其他键一起使用; o[Caps Lock] ——锁定键,将英文字母锁定为大写状态; o[Tab] ——跳格键,将光标右移到下一个跳格位置; o空格键——输入一个空格。 功能键区F1到F12的功能根据具体的操作系统或应用程序而定。 编辑键区中包括插入字符键[Ins],删除当前光标位置的字符键[Del],将光标移至行首的[Home]键和将光标移至行尾的[End]键,向上翻页[Page Up]键和向下翻页[Page Down]键,以及上下左右箭头。 辅助键区(小键盘区)有9个数字键,可用于数字的连续输入,用于大量输入数字的情况,如在财会的输入方面,另外,五笔字型中的五笔画收入也采用。当使用小键盘输入数字时应按下[Num Lock],此时对应的指示灯亮。

打字指法 准备打字时,除拇指外其余的八个手指分别放在基本键上,拇指放在空格键上,十指分工,包键到指,分工明确。

每个手指除了指定的基本键外,还分工有其他字键,称为它的范围键。其中黄色的键位由小手指负责,红色的键位由无名指负责,蓝色由中指负责,绿色键位由食指负责,紫色空格键由大拇指负责。 掌握指法练习技巧:左右手指放在基本键上;击完它迅速返回原位;食指击键注意键位角度;小指击键力量保持均匀;数字键采用跳跃式击键。

大小写字母转换

汇编语言课程设计 1.设计的目的和任务 (1)目的:课程设计是本科教学全过程中重要环节。其目的是培养计算机专业学生运用所学知识解决计算机应用领域内实际问题能力,进一步提高学生汇编语言综合编程能力,程序调试技能。 (2)任务:能够按照设计题目完成相应设计;撰写设计报告。 完成设计任务,撰写设计报告,上交源程序和可执行程序,源程序加注释 3.设计地点 自己的计算机 4.主要仪器设备(实验用的软硬件环境) 普通微机一台;汇编语言环境(基于DOS环境:EDIT、MASM、LINK、DEBUG;基于Windows环境) 5.设计内容 实现小写字母向大写字母的转换,主要利用小写字母比大写字母大20H的关系,实现大写字母向小写字母的转换,将大写字母的ASCII值加上20H就可以换成小写字母。键盘输入,显示输出。 从键盘上输入一串字符,若是小写字符则转换成大写字符在下一行输出,若是大写字符则转换成小写字符在下一行输出,若都不是则原样在下一行输出。 程序流程图如下:

6.源程序 DA TA SEGMENT P1 DB 100 P2 DB 0 ARRAY DB 100 DUP(?) ;置100个字节的缓冲区存放数据DA TA ENDS CODE SEGMENT ;代码段 ASSUME CS:CODE,DS:DA TA START:

LEA BX,ARRAY ;将ARRAY的首地址给BX MOV AX,CS MOV DS,AX MOV DX,OFFSET P1 ;将P1的偏移量给DX MOV AH,0AH ;调用中断21的0A号功能从键盘接收字符 INT 21H MOV BX,0 MOV BL,P2 MOV ARRAY[bx],’$’;送$至字符串尾 MOV DI,0FFFFH NEXT: INC DI ;DI自加 CMP ARRAY[DI],’$’;比较 JE NEIT ;相等,转到EXIT CMP ARRAY[DI],41H ;ARRAY[DI]中的字符与A比较 JL NEXT ;小于则转 CMP ARRAY[DI],5AH ;与Z比较 JG NEXT1 ;大于则转 ADD ARRAY[DI],20H ;加20H大写转小写 JMP NEXT NEXT1: CMP ARRAY[DI],’$’;比较 JE EXIT ;相等则转 CMP ARRAY[DI],61H ;ARRAY[DI]中的字符与a比 JL NEXT ;小于则转 CMP ARRAY[DI],7AH ;与z比较 JG NEXT ;大于则转 SUB ARRAY[DI],20H ;减20h,小写转大写 JMP NEXT EXIT: MOV P1,0DH ;回车换行 MOV P2,0AH MOV AH,09H INT 21H MOV AH,4CH ;程序结束 INT 21H CODE ENDS END START 6.问题讨论与分析 通过这次实验,总结出了该如何分析和编写程序:1,画出整个程序的流程图,理解整个程序流程的思想。画流程图的方式更让人很直

代码转换(大小写字母转换)

北华航天工业学院 课程设计报告(论文) 设计课题:代码转换 大小写字母转换 专业班级:电子信息工程 学生姓名: 指导教师: 设计时间: 2010-12-16

北华航天工业学院电子工程系 微机原理课程设计任务书 指导教师:教研室主任: 年月日

内容摘要 在课程设计之前,具备微机原理的理论知识和实践能力;熟悉汇编语言编程技术;熟悉80X86的CPU结构和指令系统;熟悉相关常用接口电路的设计使用方法是必不可少的。因此原理部分重新温习并整理了相关知识。 课程设计要求进行大小写字母的转换。其实字母大小写的区别在于他们的ASCII码范围,它们之间的转换其实就是加减相应的ASCII码值。在判断输入的字母是大写的还是小写的(即判断输入符号ASCII码在41H~5AH还是在61H~7AH内)之后,决定判断是加上还是减去ASCII码值。 关键词:汇编代码转换大小写

目录 一、概述 (1) 二、方案设计与论证 (1) 1.汇编语言基础 (1) 2.方案设计 (2) 三、程序设计 (3) 1.程序设计流程图 (3) 2.程序代码 (4) 四、运行结果 (5) 五、心得体会 (6) 六、参考文献 (6)

一、概述: 在计算机系统中有多种数制和编码,常用的数制有二进制、八进制以及十六进制,常用的代码有BCD码、ASCll码和七段显示码等。这些数制和编码根据其作用的不同,在存储形式上也有差异。在实际应用中,它们也因使用的要求不同而有所差异。在配备操作系统管理程序的计算机中,有些代码转换程序已在系统管理软件中编好。还有些代码转换需要根据使用要求通过编程完成。因此,代码转换是非数据处理中最常见的情况。 二、方案设计: 1、汇编语言基础 汇编:计算机不能直接识别和执行汇编语言程序,而要通过“翻译”把源程序译成机器语言程序(目标程序)才能执行,这一“翻译”工作称为汇编。汇编有人工汇编和计算机汇编两种方法。 汇编语言是面向机器的,每一类计算机分别有自己的汇编语言。汇编语言占用的内存单元少,执行效率高,广泛应用于工业过程控制与检测等场合。 汇编语言语句格式 标号:操作符操作数;注释 START: MOV A, 30H ;A←(30H) 标号用来标明语句地址,它代表该语句指令机器码的第一个字节的存储单元地址。 标号一般规定由1~8个英文字母或数字组成,但第一个符号必须是英文字母。 注释只是对语句或程序段的含义进行解释说明,以方便程序的编写、阅读和交流,简化软件的维护,一般只在关键处加注释。 伪指令:伪指令只用于汇编语言源程序中,对汇编过程起控制和指导的作用,不生成机器码。汇编结束,自动消失。 汇编语言程序设计步骤

字母大小写转换

8086汇编字母大小写转换 一、要求 从键盘输入字母,将大写字母转化为小写字母,将小写字母转化为大写字母,然后在字幕上显示转换后的结果。(键盘输入在所有大小写字母的ASCLL范围内则转换,否则报错) 二、汇编代码 ; multi-segment executable file template. data segment ; add your data here! letterdb 0 pkeydb 0dh,0ah,'please input your letter...',0dh,0ah,'$' pkey1db 0dh,0ah,'are you contine...',0dh,0ah,'$' pkey2db 0dh,0ah,'your letter is wrong!',0dh,0ah,'$' pkey3db 0dh,0ah,'the transformational letter is',0dh,0ah,'$' ends stack segment dw 128 dup(0) ends code segment assumecs:code,ds:data,ss:stack start: ; set segment registers: mov ax, data mov ds, ax moves, ax ; add your code here cnt: lea dx, pkey mov ah, 9 int 21h ; output string at ds:dx

; wait for any key.... mov ah, 1 int 21h movletter,al cmp al,'@' jcless_than jncgreater_than greater_than: cmp al,'{' jc less_than1 jnc greater_than1 less_than: lea dx, pkey2 mov ah, 9 int 21h jmp quit greater_than1: lea dx, pkey2 mov ah, 9 int 21h jmp quit less_than1: cmpal,'a' jc less_than2 jnc greater_than2 greater_than2: lea dx, pkey3 mov ah, 9 int 21h moval,letter sub al,32 movletter,al movdl,letter mov ah,2 int 21h lea dx, pkey1 mov ah, 9

Word中通篇转换字母大小写

Word中通篇转换字母大小写 用Word写作时忘了及时应用字母大小写规则,或者忘记使用全角或半角字符规则了,怎么办?有什么办法实现这些格式的快速统一吗?下面分别介绍几种情况的快速统一办法。 一、录入英文文章忘掉应用大小写规则 1. 在Word中选择要转换的英文文档,选择系统“格式→更改大小写”命令(图1)。 2. 在弹出的“更改大小写”窗口中选择“句首字母大写”(图2)。 3. 单击“确定”按钮。 二、通篇文章或特定块内大小写字母的转换 如果要把文档中的大写字母转换成小写,小写字母转换成大写,可用如下方法:

1. 在Word中用Ctrl+A组合键选择要转换的整个文档,或用鼠标选择要转换的部分文档,选择系统“格式→更改大小写”命令(图1)。 2. 在弹出的“更改大小写”窗口中选择“转换大小写”(图3)。 3. 单击“确定”按钮。 三、把拼音串或英文转为词首字母大写 有时在做广告或标题时,我们需要每个英文单词或汉语拼音的词首都用大写字母,如果我们在输入时忘了按规则进行,则可以在输入完毕后统一设置: 1. 在Word中用Ctrl+A选择要转换的整个文档或用鼠标选择要转换的部分文档,选择系统“格式→更改大小写”命令(图1)。 2. 在弹出的“更改大小写”窗口中选择“词首字母大写”(图4)。 3. 单击“确定”按钮。 四、将通篇文章或特定块内字符统一转为大写或小写

如果要把文档中的字母统统转换成小写或大写,可用如下方法实现: 1. 在Word中用Ctrl+A选择要转换的整个文档或用鼠标选择要转换的部分文档,选择系统“格式→更改大小写”命令(图1)。 2. 在弹出的“更改大小写”窗口中选择“大写”或“小写”(图5)。 3. 单击“确定”按钮。 五、将通篇文章或特定块内字母或数字转换为全角或半角 如果要把文档中的字母或数字统统转换成全角或半角,也可以借助这个窗口开转换,具体实现方法如下: 1. 在Word中用Ctrl+A选择要转换的整个文档或用鼠标选择要转换的部分文档,选择系统“格式→更改大小写”命令(图1)。 2. 在弹出的“更改大小写”窗口中选择“半角”或“全角”(图6)。 3. 单击“确定”按钮。

大小写字母之间的转化实验报告

实验4-1 实验目的:1.了解串的概念及其操作。 2.掌握c++对字符串的处理方法 实验内容:大小写字母之间的相互转化。 实验思路:字母的大小写区别在于他们的ascii码范围,它们之间的相互转换其实就是ASCII 码的加减。判断大小写其实是ASCII码是否在一定的范围内。 程序代码: #include //小写转大写 char *UpToABC( char str[] ) { for( int i = 0; ; i++ ) { if( str[i] == '\0' ) break; if('a'<=str[i]&&str[i]<= 'z' ) str[i]-= ('a'- 'A' ); } return str; } //大写转小写 char *UpToabc( char str[] ) { for( int i = 0; ; i++ ) { if( str[i] == '\0' ) break; if( 'A' <= str[i] && str[i] <='Z' ) str[i]+= ( 'a'- 'A' ); } return str; } void main() { char str1[]="xzc"; //输入字符串 char str2[]="HUST"; printf("\n 小写字母转换为大写字母后的结果为 %s",UpToABC(str1)); printf("\n 大写字母转换为小写字母后的结果为 %s",UpToabc(str2)); } /*运行实例 输入为xzc,运行结果为:小写字母转换为大写字母后的结果为 XZC 输入为HUST,运行结果为:大写字母转换为小写字母后的结果为 hust */ 运行结果:

轻松转换让英文文档句首小写变大写

轻松转换让英文文档句首小写变大 写 在英文资料中,一般都要求句首字母大写。如果一篇文档比较长,需要改变的字母比较多,那么这将是一件非常麻烦的事。下面我们就和大家一起来解决这个麻烦事。 由于很多文档都是从网页上复制的,因此会有很多空格。对此第一步就是删除空格。将文本复制到Word中后打开“编辑”菜单中的“替换”命令,在“查找内容”中输入“. ”(英文句号和一个空格),在“替换为”中输入“.”,然后单击“全部替换”按钮即可将所有多余的空格都删除。 同时Word中更改大小写是要求句子末尾有空格的,因此我们还需要将每个以“.”标点的后面添加一个空格。再次打开“替换”窗口,在“查找内容”中输入“.”,在“替换为”处输入“. ”(英文句号和一个空格),单击“全部替换”按钮。 很多朋友不明白,为什么进行两个相反的替换。其实第一次替换是将多余的空格删除,第二次替换是在每个句末只添加一个空格。 做好两次替换后,我们只需要打开“编辑”菜

单,选择“全选”命令将文档全部选中,然后再打开“格式”菜单,选择“句首字母大写”并单击“确定”按钮即可完成转换工作。 在英文资料中,一般都要求句首字母大写。如果一篇文档比较长,需要改变的字母比较多,那么这将是一件非常麻烦的事。下面我们就和大家一起来解决这个麻烦事。 由于很多文档都是从网页上复制的,因此会有很多空格。对此第一步就是删除空格。将文本复制到Word中后打开“编辑”菜单中的“替换”命令,在“查找内容”中输入“. ”(英文句号和一个空格),在“替换为”中输入“.”,然后单击“全部替换”按钮即可将所有多余的空格都删除。 同时Word中更改大小写是要求句子末尾有空格的,因此我们还需要将每个以“.”标点的后面添加一个空格。再次打开“替换”窗口,在“查找内容”中输入“.”,在“替换为”处输入“. ”(英文句号和一个空格),单击“全部替换”按钮。 很多朋友不明白,为什么进行两个相反的替换。其实第一次替换是将多余的空格删除,第二次替换

汇编实现大小写字母转换程序

一、题目要求 编写程序,接收键盘输入的字符串,将其中大写字母转化为小写字母,并显示转化后的字符串。键盘输入的字符串存于STRBUF缓冲区中,最多输入30个字符。 二、实现原理 字符串是由若干个字符构成,而字符在计算机中以ASCII码形式存储,因此字符串是一个ASCII码序列。小写字符’a’…’z’的ASCII是61H~7AH,大写字符A’…’Z’的ASCII是41H~5AH,因此将大写字母转化为小写字母的方法是:大写字母ASCII加上20H。 三、实验程序及流程图 程序首先调用0A号功能,等待用户输入字符串,并存入STRBUF中。然后对输入字符逐个检测,若为大写字符,则将其转化为小写字符,否则不变。最后采用循环结构,使用02号调用,逐个显示字符串中的字符。流程图如图4.11所示。 –1–

图4.11 程序流程图 程序代码如下。 DATA SEGMENT STRBUF DB 30,?,31 DUP (?) ;定义键盘接收缓冲区DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DA TA START: –2–

第27章单片机实现密码锁MOV AX,DA TA MOV DS,AX LEA DX,STRBUF MOV AH,0AH INT 21H ;0A号调用,等待用户输入字符串 MOV CL,STRBUF+1 CMP CL,00 JZ EXITP MOV CH,00H MOV SI,2 XX1: MOV AL,STRBUF[SI] ;读取一个字符 CMP AL,’A’ JB NEXT CMP AL,’Z’ JA NEXT ;判断是否是大写字符,ASCII在41H~5AH之间 ADD STRBUF[SI],’a’-‘A’;大写字母ASCII值加20H NEXT: INC SI LOOP XX1 MOV DL,0AH MOV AH,02H INT 21H ;控制换行 MOV CH,00 MOV CL,STRBUF+1 MOV SI,2 XX2: MOV DL,STRBUF[SI] MOV AH,02H INT 21H INC SI LOOP XX2 ;显示字符串 EXITP: MOV AH,4CH INT 21H CODE ENDS END START –3–

从键盘输入一个字符-判定是否是小写字母-如果是-则将它转换成大写字母-如果是其他字符则原样输出。

从键盘输入一个字符,判定它是否是小写字母,如果是,则将它转换成大写字母,如果是其他字符则原样输出。 如何判断一个字符是小写字母?查上一章提供的ASCII码表.在表里,小写字母(a~z)对应的ASCII值为97~122.那么,判断一个字符是否为小写,就看它的值是否大于等于'a',并且小于等于'z'. #include void main(){ char a; printf("\n请输入一个字符"); scanf("%c",&a); if((a>='a'&&a<='z')){ printf("\n您输入的字符是小写字母",a); }else{ printf("您输入的字符不是小写字母\n",a); } } (2)验证输入的一个字符是否为大写字母 #include void main(){ char a; printf("请输入一个字符\n"); fflush(stdin); a=getchar(); if('A'<=a && a<='Z'){ printf("用户输入的是大写字线%c\n",a); }else{ printf("用户输入的不是大写字母%c\n",a); } } (3) 要求判别键盘输入字符的类别.可以根据输入字符的ASCII码来判别类型.由ASCII 码表可 知ASCII码值小于32的为控制字符.在0~9之间的为数字,在A~Z之间的为大写字母,在a~z之间的为 小写字母,其余的则为其他字符. #include void main(){ char c;

printf("\n请输入一个字符:"); c=getchar(); if(c<32) printf("\n该字符是一个控制字符\n"); else if(c>='0' && c<='9') printf("\n该字符是一个数字"); else if(c>='A' && c<='Z') printf("\n该字符是一个大写字母"); else if(c>='a' && c<='z') printf("\n该字符是一个小写字母\n"); else printf("\n该字符是一个其它字符\n"); } 2. seizeof(type_name) sizeof 运算符的用法 #include void main(){ printf("\n char 类型的大小是%d字节\n",sizeof(char)); printf("short int 类型的大小是%d 字节\n",sizeof(short int)); printf("unsigned short int 类型的大小是%d 字节\n",sizeof(unsigned short int)); printf("int 类型的大小是%d 字节\n",sizeof(int)); printf("unsigned int 类型的大小是%d字节\n",sizeof(unsigned int)); printf("long 类型的大小是%d 字节\n",sizeof(long)); printf("unsigned long 类型的大小是%d 字节\n",sizeof(unsigned long)); printf("float 类型的大小是%d 字节\n",sizeof(float)); printf("double类型的大小是%d 字节\n",sizeof(double)); } 3.判定给定的年分是否为闰年. 闰年的判定规则为:能被4整除但不能被100整除的年分,或能被400整除的年份. #include void main(){ int year;

如何在中转换字母大小写

如何在Word中转换字母大小写 用Word写作时忘了及时应用字母大小写规则,或者忘记使用全角或半角字符规则了,怎么办?有什么办法实现这些格式的快速统一吗?下面分别介绍几种情况的快速统一办法。 一、录入英文文章忘掉应用大小写规则 1. 在Word中选择要转换的英文文档,选择系统“格式→更改大小写”命令(图1)。 2. 在弹出的“更改大小写”窗口中选择“句首字母大写”(图2)。 3. 单击“确定”按钮。 二、通篇文章或特定块内大小写字母的转换

如果要把文档中的大写字母转换成小写,小写字母转换成大写,可用如下方法: 1. 在Word中用Ctrl+A组合键选择要转换的整个文档,或用鼠标选择要转换的部分文档,选择系统“格式→更改大小写”命令(图1)。 2. 在弹出的“更改大小写”窗口中选择“转换大小写”(图3)。 3. 单击“确定”按钮。 三、把拼音串或英文转为词首字母大写 有时在做广告或标题时,我们需要每个英文单词或汉语拼音的词首都用大写字母,如果我们在输入时忘了按规则进行,则可以在输入完毕后统一设置: 1. 在Word中用Ctrl+A选择要转换的整个文档或用鼠标选择要转换的部分文档,选择系统“格式→更改大小写”命令(图1)。 2. 在弹出的“更改大小写”窗口中选择“词首字母大写”(图4)。

3. 单击“确定”按钮。 四、将通篇文章或特定块内字符统一转为大写或小写 如果要把文档中的字母统统转换成小写或大写,可用如下方法实现: 1. 在Word中用Ctrl+A选择要转换的整个文档或用鼠标选择要转换的部分文档,选择系统“格式→更改大小写”命令(图1)。 2. 在弹出的“更改大小写”窗口中选择“大写”或“小写”(图5)。 3. 单击“确定”按钮。 五、将通篇文章或特定块内字母或数字转换为全角或半角 如果要把文档中的字母或数字统统转换成全角或半角,也

微机原理:完美的大小写字母互换

微机原理实验:接受键盘字符(以回车键结束),并将其中的小写字母转化为大写字母,大写字母转化为小写字母,然后显示在屏幕上。 要求:BX指向字符行缓冲区首址,偏移地址指针SI清0,使用DOS 01H号功能接受键入字符。 以下程序完美的实现了大小写字母的混合输入后的混合转换,即大转小,小转大,并可键入空格,如:I LOVE you。 DATAS SEGMENT DATA1 DB 20 DUP('?') DATA2 DB'please input string,end with enter,exit with ctrl-c:',0DH,0AH,'$' DATA3 DB'the connverted string is:',0DH,0AH,'$' DATA4 DB 0DH,0AH,'$' DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX XOR SI,SI MOV BX,OFFSET DATA1 LEA DX,DATA2 MOV AH,9 INT 21H LOOP1: MOV AH,1 INT 21H CMP AL,03H JZ LOOP4 CMP AL,0DH JZ LOOP3 CMP AL,41H JAE LOOP5 LOOP2:SUB AL,20H MOV [BX+SI],AL INC SI JMP LOOP1 L5:CMP AL,61H JAE LOOP2 ADD AL,20H MOV [BX+SI],AL INC SI JMP LOOP1 L3:LEA DX,DATA4

字母大小写转换训练

三年级英语字母 一、按格式、按字母顺序、按要求默写26个字母。 二、请给下面的大小写字母连线。 Q W E R T Y U I O P A S D p q s a d o w i e u r y t ______________________________________________________________________________ F G H J K L Z X C V B N M l k m n f g j z h x c v b 三、根据给出的大写字母写出相应的小写字母。 Q W E R T Y U I O P A S D

F G H J K L Z X C V B N M 四、根据给出的小写字母写出相应的大写字母。 m n b v c x z l k j h g f d s a p o i u y t r e w q 五、根据前后字母写出所缺字母。 (1)Aa Bb ______ Dd ______ ____ Gg ______ Ii Jj Kk _____ _______ ______ Oo Pp _____ ______ Ss Tt Uu Vv Ww _______ _______ ________ (2)_____ _____ C ____ E F ____ _____ I J _____ L ____ _____ O P ____ ______ _____ T _____ _____ W X _____ ______ (3)a ____ _____ _____ e ____ _____ _____ i j k l ____ _____ ______ _____ _____ r s _____ u v w ____ _____ _____ 六、请根据下面的印刷体写出手写体。 Aa Ee Ff Gg Ii Jj Kk Ll Pp Qq Rr Tt Uu Xx Yy

英文字母大小写转换程序设计

课程设计任务书 学生姓名:刘小燕专业班级:电信0801班 指导教师:陈德军工作单位:信息工程学院 题目:英文字母大小写转换程序设计 初始条件: 具备数字电路的理论知识;具备微机原理的理论知识和实践能力;熟悉汇编语言编程技术;熟悉80X86的CPU结构和指令系统;熟悉相关常用接口电路的设计使用方法。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1、输入英文字母串,在回车后实现大小写转换 2、按命令要求将字符串转换为全部大写或全部小写 3、非英文字母不允许输入并声响报警 4、程序采用汇编语言在PC机上完成 5、完成符合学校要求的设计说明书 时间安排: 一周,其中2天程序设计,2天程序调试,1天完成课程设计报告书及答辩 指导教师签名:年月日系主任(或责任教师)签名:年月日

目录 摘要.................................................................................................................................................. I 1 DOS功能调用 (1) 2总体方案论证 (4) 3程序流程图及程序设计分析 (5) 3.1主程序设计 (5) 3.1.1流程图及其分析 (5) 3.1.2程序设计 (6) 3.2 chos字符串转换子程序设计 (8) 3.2.1流程图及其分析. (8) 3.2.2程序设计 (9) 3.3小写转大写子程序设计 (11) 3.3.1流程图及其分析 (11) 3.3.2程序设计 (12) 3.4大写转小写子程序设计 (13) 3.4.1流程图及其分析 (13) 3.4.2程序设计 (14) 4 总程序 (15) 5 课程设计心得体会 (20) 参考文献 (21)

26个英文字母这么写才漂亮(被家长们疯转)

26个英文字母,这么写才漂亮(被家长们疯转) 铭爸shuo26个英文字母及标点符号写法,请拿去指导孩子吧~~26个字母书写的规格 (1)应按照字母的笔顺和字母在三格中应占的位置书写。(2)每个字母都应稍向右倾斜,约为5°,斜度要一致。(3)大写字母都应一样高,占上面两格,但不顶第一线。(4)小写字母a,c,e,m,n,o,r,s,u,v,w,x,z 写在中间的一格里,上下抵线,但都不出格。 (5)小写字母b,d,h,k,l的上端顶第一线,占上面两格。 (6)小写字母i和j的点、f和t的上端都在第一格中间,f 和t的第二笔紧贴在第二线下。 (7)小写字母f g j p q y的下端抵第四线。 (8)小写字母a,d,h,i,k,l,m,n,t和u,它们的提笔是一个上挑的小圆钩,不能写成锐角。 (9)书写单词时,字母与字母之间的间隔要均匀、适当,不要凑得过紧,也不要离得太远。 (10)书写句子时,单词之间必须有适当的距离,一般以空出一个小写字母a的宽度为宜。 (11)标点符号要写在一定的位置上。 字母的笔顺

字母要按一定的笔划顺序书写,其书写笔顺如下。(请注意书写的格式和大小写的区别。) 通过上表,我们可以看出,有的字母是一笔完成,而有的是两笔或三笔完成的。现归纳如下: (1)一笔完成的字母:大写:C G J L O S V W Z小写:a b c d e g h k l m n o q r s u v w y z (2)两笔完成的字母:大写:B D K M P Q R T U X Y小写:f i j p t x (3)三笔完成的字母:大写:A E F H I N小写:无

c语言大小写字母转换

C语言大小写字母转换 1. 完成一个大小写字母自动转换的程序,输入大写字母,程序可以输出小写字母,输入小写字母,可以输出大写字母 #include int main() { char str[10]; int i=0; gets(str); while(str[i]) { if(str[i]>='a'&&str[i]<='z') str[i]=str[i]-32; else if(str[i]>='A'&&str[i]<='Z') str[i]=str[i]+32; i++; } puts(str); return 0; 2. 用三种循环方式实现1-100的和计算(提示:do...while, while,for) for循环: for(int i = 1, sum = 0; i<=100; i++) { sum+=i; } while循环: int i = 1; int sum = 0; while(i<=100) { sum+=i; i++; } do while循环: int i = 1; int sum = 0; do{ sum+=i; i++; }while(i<=100); 3.说说数组和指针的区别

1、指针的本质是一个与地址相关的复合类型,它的值是数据存放的位置(地址);数组的本质则是一系列的变量。 2、数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。 3、当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。 数组名可以当作一个指针来用,数组名可以用*取其中的值,指针也可以用[]解引用,但它们还是有一些区别 指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险 4. 用指针实现一个字符串输入,然后把输入字符串倒序输出的程序 #include #define N 20 void main() { char x1[N],x2[N]; int i; print("输入一个字符串!\n"); gets (x1); for(i=0;x1[i]!='0';i++) if(x1[i]>'a'||x1[i]='a' &&x1[i]<'z'||x1[i]='z' x2[i]=x1[i]+32; printf("\n变化后得:\n"); puts(x2);

vb中字母大小写转换的三种方法

VB中字母大小写转换的三种方法 方法一:用VB的函数LCase和UCase 用三个TextBox来展现一下这两个函数的大小写转换功能[运行之前在TextBox1中输入几个大写字母,也可混合输入]: PrivateSubCommand1_Click() Text2.Text=LCase(Text1.Text)'将Text1的文本全换成小写 Text3.Text=UCase(Text2.Text)'将Text1的文本全换成大写 EndSub 说明: LCase仅将是大写的转换为小写,UCase则仅将是小写的转换为大写,故当字符串中有其它不符合转换的内容时将对其忽略。可以在TextBox1中输入汉字、阿拉伯数字等观察效果。 方法二:用API函数 user32提供两个用于大小写转换的API函数:Charlower[大写-小写]、Charupper[小写-大写],其原形分别为: DeclareFunctionCharLowerLib"user32"Alias"CharLowerA"(ByVallpszAsString)AsLong DeclareFunctionCharUpperLib"user32"Alias"CharUpperA"(ByVallpszAsString)AsLong 继续用三个文本框来观察效果: PrivateSubCommand1_Click() DimaAsString a=Text1.Text'给变量赋初值 CharUppera'变为大写 Text2.Text=a CharLowera'变为小写 Text3.Text=a EndSub 说明:与方法一的效果完全一样。实际上,VB的LCase和UCase函数调用的也就是这两个API函数,是封装了这两个API函数的内部函数。 方法三:用算法 可以利用Ascii码对大小写字母字符代码的定义来强制输入的字母只能为大写的或者小写的,而不管CapsLock键是打开的还是关闭的。就象安装Windows时用户输入CD-KEY 一样。请看: PrivateSubText1_KeyPress(KeyAsciiAsInteger) '输入的字母通通为小写 IfKeyAscii>64AndKeyAscii<91ThenKeyAscii=KeyAscii 32

大小写字母转换(微型计算机原理与接口技术)

北华航天工业学院 《微机原理及接口技术》 课程设计报告(论文) 设计课题:大小写字母转换 专业班级: 学生姓名: 指导教师: 设计时间:

北华航天工业学院电子工程系 微机原理与接口技术课程设计任务书姓名:专业:电子信息工程班级: 指导教师:职称:讲师 课程设计题目: 大小写字母转换 设计要求: 1:按屏幕提示要求输入,从屏幕上获得正确结果。 2:实现大小写字母转换 所需仪器设备: 计算机、 成果验收形式: 大小写字母转换,对汇编程序的理解和设计报告 参考文献: 微机原理与接口技术 8086实验指导书 时间安排星期一,星期二,星期三程序设计,调试星期二,星期三验收 指导教师:刘金梅教研室主任:2010年12月24 日

内容摘要 在计算机系统中有多种数制和编码,常用的数制有二进制、八进制以及十六进制,常用的代码有BCD码、ASCll码和七段显示码等。这些数制和编码根据其作用的不同,在存储形式上也有差异。在实际应用中,它们也因使用的要求不同而有所差异。在配备操作系统管理程序的计算机中,有些代码转换程序已在系统管理软件中编好。还有些代码转换需要根据使用要求通过编程完成。因此,代码转换是非数据处理中最常见的情况。 模块1实现小写字母向大写字母的转换,主要利用小写字母比大写字母大20H的关系。 模块2实现大写字母向小写字母的转换,与模块1类似,将大写字母的ASCll 值加上20H就可以转换成小写字母。 索引关键词微机原理及接口技术、大小写字母转换

目录 一概述 (5) 二方案设计与论证 (5) 2.1 设计流程图 (5) 2.2 汇编语言程序设计 (6) 三设计源程序 (7) 四运算结果分析 (10) 五试验设备 (11) 六心得体会 (11) 七参考文献 (12)

相关文档
相关文档 最新文档