指令用汇编语言对字母大小写转换

字母大小写转换  时间:2021-04-12  阅读:()

物理与电气 工程学院课 程实践报告用汇编语言对字母大小写转换

姓 名 ** ***********

专 业 电气工程及 其自动化

班 级 电气工程及 其自动化1 班

年 级 2000级

指导教师 00 00

日 期 0000. 6.20

一概述

在计算机系统中有多种数制和编码常用的数制有二进制、八进制以及十六进制常用的代码有BCD码、 ASC l l码和七段显示码等。这些数制和编码根据其作用的不同在存储形式上也有差异。在实际应用中它们也因使用的要求不同而有所差异。在配备操作系统管理程序的计算机中有些代码转换程序已在系统管理软件中编好。还有些代码转换需要根据使用要求通过编程完成。因此代码转换是非数据处理中最常见的情况。

二设计要求

完成一个字母或数制之间的转化程序主程序分别具有可选择的子功能按相应的字符可分别进入相应的子功能并在屏幕上显示结果。

可选择的子功能分别为

1实现小写字母向大写字母的转换

2实现大写字母向小写字母的转换

三设计思想与工作原理

小写字母的ASC码比大写字母的ASC码大20H 因此大写转小写就是将大写字母的AS C码加20

H反之将小写字母的ASC码减20H。大小写字母转换功能是通过调用子函数in put实现对字符串的输入然后调用宏gaixi e来实现对大小写的转换其中宏是通过参数的传递来确定是小写转换成大写还是大写转换成小写的。从而决定是对操作数进行加或减20H。

80x86从功能上分执行单元E U(Execu tion Unit) 和总线接口单元BIU(Bus Inter face Unit) 执行单元由算术逻辑单元ALU 、标志寄存器、通用寄存器组和EU控制器等部件组成。指令执行部件EU由算术逻辑单元、标志寄存器、通用寄存器和EU控制器等部件组成。

主要功能是执行指令

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

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

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

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

主要功能是形成访问存储器的物理地址负责与外部 存储器或I/O接口打交道。 正常情况下BIU通过地址加法器形成指令的物理地址从给定存储器地址中取出指令代码送指令队列缓冲器中等待执行指令队列缓冲器中出现一个空字节 BIU将自动进行读指令的操作填满队列。

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

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

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

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

1汇编

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

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

2汇编语言语句格式

标号 操作符 操作数 注释

Start  mov A 30H 

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

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

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

3伪指令

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

4汇编语言程序设计步骤

1分析问题

2确定算法

(3设计程序流程

4分配内存单元分配内存工作单元确定程序和数据区的起始地址。5编写汇编语言程序

6调试程序

四程序流程图及其说明

五流程图说明

该程序流程图简要地表现出了所要实现的功能以及一些功能的大概算法 同时也是我编写的程序的一个总体的框架。 通过流程图可以看出程序开始运行时首先输出输入界面在界面中输入字母大小写均可 按回车键输出结果大写输出小写小写输出大写或同时输入大小写其结果也将以小大写形式输出此时结束程序若程序中输入字母过多或频繁则报警器报警。

六程序源代码code segme ntassum e cs:code,ds:codeorg 100hstart :jmp beginp1 db 100p2 db 0array db 100h dup(?)begin :lea bx,arraymov ax,csmov ds,axmov dx,offse t p1mov ah,0ahint 21h ;调用dos中断等待用户输入字符串xor bx,bxmov bl,p2mov array [bx] , ' $'mov di,0ffff hnext: inc dicmp array [di] , ' $'je exitcmp array [di] ,41h ;41h表示Ajl exit1cmp array [di] ,5ah ; Zjg next1add array [di] ,20h ;回车jmp next ;判断是否为大写字母next1 :

cmp array [di] , ' $'je exitcmp array [di] ,61h ;ajl nextcmp array [di] ,7ah ;zjg exit1sub array [di] ,20h ;回车jmp next ;判断是否为小写字母disp:loop nextexit: mov p1,0dhmov p2,0ahmov ah,09hint 21hjmp begin code segmentassum e cs:code,ds:codeorg 100hstart :jmp beginp1 db 100p2 db 0array db 100h dup(?)begin :lea bx,arraymov ax,csmov ds,axmov dx,offse t p1mov ah,0ahint 21h ;调用dos中断等待用户输入字符串xor bx,bxmov bl,p2mov array [bx] , ' $'mov di,0ffff hnext: inc dicmp array [di] , ' $'je exit

cmp array [di] ,41h ;41h表示Ajl exit1cmp array [di] ,5ah ; Zjg next1add array [di] ,20h ;回车jmp next ;判断是否为大写字母next1 :cmp array [di] , ' $'je exitcmp array [di] ,61h ;ajl nextcmp array [di] ,7ah ;zjg exit1sub array [di] ,20h ;回车jmp next ;判断是否为小写字母disp:loop nextexit: mov p1,0dhmov p2,0ahmov ah,09hint 21hjmp beginexit1 : mov p1, 0dhmov p2, 0ahcall soundcall soundcall soundcall sound ;调用sound子程序jmp begin code segmentassum e cs:code,ds:codeorg 100hstart :jmp beginp1 db 100p2 db 0array db 100h dup(?)begin :

lea bx,arraymov ax,csmov ds,axmov dx,offse t p1mov ah,0ahint 21h ;调用dos中断等待用户输入字符串xor bx,bxmov bl,p2mov array [bx] , ' $'mov di,0ffff hnext: inc dicmp array [di] , ' $'je exitcmp array [di] ,41h ;41h表示Ajl exit1cmp array [di] ,5ah ; Zjg next1add array [di] ,20h ;回车jmp next ;判断是否为大写字母next1 :cmp array [di] , ' $'je exitcmp array [di] ,61h ;通过循环依次判断每个字母是否为大写还是小写 61h表示小写字母 ajl nextcmp array [di] ,7ah ;zjg exit1sub array [di] ,20h ;回车jmp next ;判断是否为小写字母disp:loop nextexit: mov p1,0dhmov p2,0ahmov ah,09hint 21hjmp beginexit1 : mov p1, 0dh

mov p2, 0ahcall soundcall soundcall soundcall sound ;调用sound子程序jmp begin ;回到最初的状态 已达到循环输入字符串的目的。mov ah,4chint 21h ;程序结束sound procpush axpush dxmov dx, cxin al,61hand al, 11111 100btrig: xor al,2out 61h,almov cx,bxdelay :loop delaydec dxjne trigpop dxpop axretsound endpcode endsend beginmov ah,4chint 21h ;程序结束sound procpush axpush dxmov dx, cxin al,61hand al, 11111 100b

MOACK:韩国服务器/双E5-2450L/8GB内存/1T硬盘/10M不限流量,$59.00/月

Moack怎么样?Moack(蘑菇主机)是一家成立于2016年的商家,据说是国人和韩国合资开办的主机商家,目前主要销售独立服务器,机房位于韩国MOACK机房,网络接入了kt/lg/kinx三条线路,目前到中国大陆的速度非常好,国内Ping值平均在45MS左右,而且商家的套餐比较便宜,针对国人有很多活动。不过目前如果购买机器如需现场处理,由于COVID-19越来越严重,MOACK办公楼里的人也被感染...

盘点AoYoZhuJi傲游主机商8个数据中心常见方案及八折优惠

傲游主机商我们可能很多人并不陌生,实际上这个商家早年也就是个人主机商,传说是有几个个人投资创办的,不过能坚持到现在也算不错,毕竟有早年的用户积累正常情况上还是能延续的。如果是新服务商这几年确实不是特别容易,问到几个老牌的个人服务商很多都是早年的用户积累客户群。傲游主机目前有提供XEN和KVM架构的云服务器,不少还是亚洲CN2优化节点,目前数据中心包括中国香港、韩国、德国、荷兰和美国等多个地区的CN...

VPSMS:53元/月KVM-512MB/15G SSD/1TB/洛杉矶CN2 GIA

VPSMS最近在做两周年活动,加上双十一也不久了,商家针对美国洛杉矶CN2 GIA线路VPS主机提供月付6.8折,季付6.2折优惠码,同时活动期间充值800元送150元。这是一家由港人和国人合资开办的VPS主机商,提供基于KVM架构的VPS主机,美国洛杉矶安畅的机器,线路方面电信联通CN2 GIA,移动直连,国内访问速度不错。下面分享几款VPS主机配置信息。CPU:1core内存:512MB硬盘:...

字母大小写转换为你推荐
中国零售及电商周讯2016sns平台SNS分类及代表性网站有哪些苹果appstore宕机为什App Store下载软件 到了一半就停了 不动了163yeah请问网易的163,126,yeah,VIP,188邮箱各有什么特点?重庆杨家坪猪肉摊主杀人重庆忠县的猪肉市场应该好好整顿一下了。6月份我买到了母猪肉。今天好不容易才下定决心去买农贸市场买肉。银花珠树晓来看谜语白色花无人栽一夜北风遍地开。旡根无叶又无枝不知是谁送花来。谜底是什么申请400电话申请400电话需要哪些流程?办理哪些证明?灌水机什么是论坛灌水机?在哪里可以下载到呢?discuz伪静态discuz怎么才能把专题目录也实现伪静态的方法详解站点管理站点名称是什么意思
windows虚机 lnmp 国外永久服务器 新加坡主机 主机评测 hawkhost diahosting 一元域名 魔兽世界台湾服务器 500m空间 国外在线代理 服务器维护方案 php空间推荐 河南移动网 vul 英雄联盟台服官网 百度云空间 电信宽带测速软件 ssl加速 服务器托管价格 更多