编写一个汇编语言程序,将字符串Hello World中的全部小写字母转换为大写字母,并存放回原地址处。
编写一个汇编语言程序,将字符串"Hello World"中的全部小写字母转换为大写字母,并存放回原地址处。
P176
4.10
编程思路:首先DATA段中,定义string存放字符串"Hello World",LEN为字符串string长度;其次,BX获取string的有效地址,将string存放的字符串赋值给AL,通过AL进行与’a’和’z’这个范围进行比较,若在该范围表示为小写字母,则需要转换为大写字母,即AL-20H(小写字母要比大写字母所对应的ASCII码值大20H),所以AL-20H就是小写字母所对应的大写字母。
代码如下:
DATA SEGMENT
string DB "Hello World!" ;将需要转换的字符串存放到string中,定义类型为DB型
LEN EQU $-string ;等值伪指令EQU,将LEN表示string的长度
DATA ENDS
CODE SEGMENTASSUME CS:CODE,DS:DATA
START: MOV AX,DATA ;由于DATA为立即数,不能用赋值给段寄存器DS,需要借助AX通用寄存器MOV DS,AX ;将AX赋值给DSMOV BX,OFFSET string ;BX获取string的有效地址用于取出string中的字符串MOV CL,LEN ;CL为string字符串的长度
NEXT: MOV AL,[BX] ;此时[BX]为string所存放字符串的内容,赋值给ALCMP AL,'a' ;由于是DB字节类型,只需要将AL的一个字节单元与单个字符'a'进行比较JB LOP ;JB为小于跳转,即AL存放的字节单元的内容所对应的ASCII码值小于'a'所对应的ASCII码值,跳转到LOP标签处 否则不跳转执行下一条指令CMP AL,'z' ;若执行到此条指令,代表AL>='a',接下来需要与'z'进行比较即可JA LOP ;JA为大于跳转,即AL存放的字节单元的内容所对应的ASCII码值大于'z'所对应的ASCII码值,跳转到LOP标签处 否则不跳转执行下一条指令 SUB AL,20H ;执行到此条指令,表示以及确定此时的AL为小写字母,AL-20H表示将小写字母转换为所对应的大写字母(小写字母比对应的大写字母的ASCII码值大20H)MOV [BX],AL ;将小写字母转换为对应的大写字母结束后,结果AL存放回原来的物理地址[BX]处
LOP: INC BX ;BX+1(因为DB字节类型),表示判断下一个字节单元存放的字符串DEC CL ;CL-1,表示字符串string所需要判断字符的长度减一JNZ NEXT ;若CL不为0,即字符串string仍有需要判断的字符,跳转到NEXT标签处MOV AH,4CH ;调用4CH号功能,返回DOS操作系统指令INT 21H ;终止当前程序的运行,并返回DOS系统
CODE ENDSEND START
编写一个汇编语言程序,将字符串Hello World中的全部小写字母转换为大写字母,并存放回原地址处。相关推荐
- 编写一个汇编语言程序,完成以下要求。从BUF单元处定义有10个带符号字数据:-1,3,24,94,62,72,55,0,-48,99,试找出他们中的最大值和平均值,并以此分别存放至该数据区的后两个单元
编写一个汇编语言程序,完成以下要求.从BUF单元处定义有10个带符号字数据:-1,3,24,94,62,72,55,0,-48,99,试找出他们中的最大值和平均值,并以此分别存放至该数据区的后两个单元 ...
- 试编写一个汇编语言程序,要求从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数
试编写一个汇编语言程序,要求从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数 data segment data ends stack segment stack dw 30h dup ...
- 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来
试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来 DATA SEGMENT DATA ENDS STACK SEGMENT STACK ENDS CODE SEGMENT ASSUM ...
- 编写一个汇编语言程序,有一个50个数据的数据区,找出最大数和最小数,分别存放在AX和BX寄存器中
[微机原理]-汇编题 编写一个汇编语言程序,有一个50个数据的数据区,找出最大数和最小数,分别存放在AX和BX寄存器中. DATA SEGMENT NUM DB 21H,34,23H...DATA E ...
- AX寄存器中存放着16位二进制数。试编写一个汇编语言程序,将这4位十六进制数分别转换为相应的ASCⅡ码,并依次存放到PLUS数组的4个字节中去,要求用调用子程序的方法实现
[微机原理]-汇编题 AX寄存器中存放着16位二进制数.试编写一个汇编语言程序,将这4位十六进制数分别转换为相应的ASCⅡ码,并依次存放到PLUS数组的4个字节中去,要求用调用子程序的方法实现. 方法 ...
- 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。(两种方法/每步详解)
试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来. 小写变大写的实现方法: 1.SUB AL,32 ; 只能满足于输入只是小写的时候 2. AND AL,11011111B ; 该方 ...
- 【汇编】 编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来.
- 微型计算机使用的键盘大写,键盘输入字符串,小写字母转换为大写字母,其余字符不变...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 ;8086汇编语言 ;从键盘输入一字符串,将其中所有小写字母转换为大写字母,其余字符不变,将结果在屏幕上输出. DATA SEGMENT ;数据段 COU ...
- C语言 把字符串s中所有小写字母转换为大写字母,其他字符不变
在 C 语言中,可以使用以下方法来将字符串 s 中的所有小写字母转换为大写字母: #include <stdio.h> #include <ctype.h>int main() ...
最新文章
- Go实现简单的K-V存储
- 运营资源很少的时候,怎么运营自己的产品(完结)
- netty依赖_高性能:《一遍文章带你看懂 Netty世界》
- linux iopen i2c dev,i2c-dev - Linux驱动子系统之I2C_Linux编程_Linux公社-Linux系统门户网站...
- 《数据结构上机实验(C语言实现)》笔记(2 / 12):线性表
- android优美列表页面,android listview 列表 点击列表进入详细页面
- mysql未监控在3306_监控MySQL或Web服务是否正常
- 开课吧:微服务与DDD解析
- STK之Commu模块之二-仿真同步卫星与地面站通信显示EIRP分布
- 来了!2020 云栖大会 蚂蚁金融科技产品能力再升级
- 直播继续搅局双11?
- 电脑如何设置uefi启动 电脑设置uefi启动方法
- 关于股权激励方案建议参考
- CMDB资产管理系统
- 人脸识别主要机算法原理
- 裁员、年终奖减半:在公司打工,你永远不知道意外和明天哪个先来
- Android黑白照片上色APP,Colorize上色APP
- 真假金士顿U盘大拆解
- JAVA通过itextpdf实现PDF骑缝章
- 算法-22-字符串的排序算法(四种排序)