汇编语言 字母的大小写转换

发布者:人妙果华最新更新时间:2022-10-19 来源: csdn关键字:汇编语言  字母 手机看文章 扫描二维码
随时随地手机看文章

大小写转换问题


A     41H  0100  0001B        or  0010  0000B   转换为小写

B   42H  0100  0010B

C     43H  0100  0011B

D     44H  0100  0100B


a     61H  0110  0001B         and  1101  1111B   转换为大写

b     62H  0110  0010B

c     63H  0110  0011B

d     64H  0110  0100B


方法一:


assume cs:code


data segment

db 'ABcDEF'      ; 将ABcDEF全部转换为小写

db 'abCdef'      ; 将abCdef全部转换为大写 

data ends


stack segment stack

dw 0, 0, 0, 0, 0, 0, 0, 0

dw 0, 0, 0, 0, 0, 0, 0, 0

dw 0, 0, 0, 0, 0, 0, 0, 0

dw 0, 0, 0, 0, 0, 0, 0, 0

stack ends


code segment


start:

mov ax, data

mov ds, ax

mov bx, 0

mov ax, data

mov es, ax

mov cx, 6

downLetter: mov dl, ds:[bx]

or dl, 00100000B 

mov es:[bx], dl

inc bx

loop downLetter

mov cx, 6

mov bx, 6

UpLetter:  mov dl, ds:[bx]

and dl, 11011111B

mov es:[bx], dl

inc bx

loop UpLetter

mov ax, 4C00H

int 21H

code ends

end start


方法二:


assume cs:code



data segment

db 'ABcDEF'      ;单引号

db 'abCdef'

data ends



stack segment stack

dw 0, 0, 0, 0, 0, 0, 0, 0

dw 0, 0, 0, 0, 0, 0, 0, 0

dw 0, 0, 0, 0, 0, 0, 0, 0

dw 0, 0, 0, 0, 0, 0, 0, 0

stack ends


code segment


start:

mov ax, data

mov ds, ax

mov bx, 0

mov ax, data

mov es, ax

mov cx, 6

setLetter: mov dl, ds:[bx]

or dl, 00100000B 

mov es:[bx], dl

mov dl, ds:[bx + 6]

and dl, 11011111B

mov es:[bx + 6], dl

inc bx

loop setLetter

mov ax, 4C00H

int 21H

code ends


end start


代码执行结果:

在这里插入图片描述

data 段中每个单词的头一个字母改为大写


assume cs:code, ds:data


data segment 

db  '1. file         '

db  '2. edit         '

db  '3. search       '

db  '4. view         '

db  '5. options      '

db  '6. help         '

data ends


code segment


start:

mov ax, data

mov ds, ax

mov es, ax

mov bx, 0

mov si, 3

mov cx, 6

upLetter: mov dl, ds:[bx + si]

and dl, 11011111B

mov es:[bx + si], dl

add bx, 16

loop upLetter

mov ax, 4C00H

int 21

code ends


end start


代码执行结果:

在这里插入图片描述

data 段中每个单词都改为大写


assume cs:code, ds:data


data segment 

db  '1. ibm          '

db  '2. dec          '

db  '3. dos          '

db  '4. vax          '


data ends


stack segment

dw 0, 0, 0, 0, 0, 0, 0, 0

dw 0, 0, 0, 0, 0, 0, 0, 0

stack ends


code segment


start:

mov ax, stack

mov ss, ax

mov sp, 32

mov ax, data

mov ds, ax

mov es, ax

mov cx, 4

mov bx, 0

mov si, 3

upLetter:   push cx

push si

mov cx, 3

upRow: mov dl, ds:[bx + si]

and dl, 11011111B

mov es:[bx + si], dl

inc si

loop upRow

pop si

pop cx

add bx, 16

loop upLetter

mov ax, 4C00H

int 21

code ends


end start


代码执行结果:

在这里插入图片描述

data 段中每个单词前4个字母都改为大写


assume cs:code, ds:data


data segment 

db  '1. display      '

db  '2. brows        '

db  '3. replace      '

db  '4. modify       '


data ends


stack segment

dw 0, 0, 0, 0, 0, 0, 0, 0

dw 0, 0, 0, 0, 0, 0, 0, 0

stack ends


code segment


start:

mov ax, stack

mov ss, ax

mov sp, 32

mov ax, data

mov ds, ax

mov es, ax

mov cx, 4

mov bx, 0

mov si, 3

upRow:    push cx

push si

mov cx, 4

upCol: mov dl, ds:[bx + si]

and dl, 11011111B

mov es:[bx + si], dl

inc si

loop upCol

pop si

pop cx

add bx, 16

loop upRow

mov ax, 4C00H

int 21

code ends


end start

在这里插入图片描述

关键字:汇编语言  字母 引用地址:汇编语言 字母的大小写转换

上一篇:汇编语言 字符串的复制
下一篇:汇编语言 在存储单元中显示字符串

推荐阅读最新更新时间:2024-11-03 16:18

STM8与汇编语言(1)(2)(3)
STM8与汇编语言(1) 不知是心血来潮,还是其它因素,突然又想起玩汇编语言了。这几年也没少跟单片机打交道,包括51系列,430系列,ARM系列,但都是用C语言来开发。不过由于使用C语言,实际上对这些CPU的了解还是不够深刻,当然除了51之外,因为那是我多年前曾经用汇编开发过的芯片。尽管当今C语言已经在嵌入式产品的开发过程中成为主流,但我个人依然认为,要想真正了解CPU的特点,还得用汇编语言。不知道这种观点是对还是错,也许是因为自己从硬件做起,写过机器码,用汇编语言做过优化,因此对汇编语音有一种特殊的偏爱。 51系列的芯片用多了,感觉有时写起程序来不太方便,因此总想寻找一些其它的8位单片机玩玩,正好手头有一个ST的三合一开
[单片机]
怎样掌握指针式万用表上常用的外文字母含义?
指针式万用表是一种多用途、多量程的仪表,使用非常方便,故应用极其广泛,一般的指针式万用表可用来测量直流电流、直流电压、交流电压、电阻等。有的万用表还可用来测量交流电流、电容、电感及对晶体管的检测。指针式万用表上常用的外文字母含义见表1-1,供使用万用表时参考。
[测试测量]
怎样掌握指针式万用表上常用的外文<font color='red'>字母</font>含义?
51单片机学习笔记——基于汇编语言(1)
该系列文章基于80C51单片机,Keil2(这个版本是比较古老,不过keil2和keil5其实区别不大) 1、80C51系列单片机硬件结构 在开始讲单片机之前,相信大家已经对进制转换与码值已经有了一定的了解,如果完全没学过,可以随便弄本C语言啥的书,一般应试教育的计算机入门类教材第一章都会讲这个2333。 学单片机我们就要先了解一下它的硬件结构 1.1 内部结构 单片机的硬件组成有 1、1个8bit的CPU 2、1个片内振荡器和时钟电路 3、程序存储器,4KB(其实我用的有64K,相信大部分人也是,4k估计是Intel原始设计)的掩膜ROM,用于存放程序、原始数据和表格 4、数据存储器 5、64KB总线扩展控制器(
[单片机]
51单片机学习笔记——基于<font color='red'>汇编语言</font>(1)
MSP430模拟串口的源程序-汇编语言
#i nclude MSP430x11x1.h ; ; MSP430F1121 ; ----------------- ; /|\| XIN|- ; | | | 32k ; --|RST XOUT|- ; | | ; | | 2400 8N1 ; | TX/P1.1|-------- ; | TX/P2.2| -------- ; RXD equ 004h ; RXD on P2.2 TXD equ 002h
[单片机]
keil C语言与汇编语言混合编程
1. C语言中嵌入汇编 1、在 C 文件中要嵌入汇编代码片以如下方式加入汇编代码: #pragma ASM ; Assembler Code Here #pragma ENDASM 2、在 Project 窗口中包含汇编代码的 C 文件上右键,选择 Options for ... ,点击右边的 Generate Assembler SRC File 和 Assemble SRC File ,使检查框由灰色变成黑色(有效)状态; 3、根据选择的编译模式,把相应的库文件(如 Small 模式时,是 Keil/C51/Lib/C51S.Lib)加入工程中, 该文件必须作为工程的最后文件; 4、编译,即可生成目标代码。 来个
[单片机]
arm汇编语言调用含参数的C函数及有关实例
简介:对于ARM体系来说,不同语言撰写的函数之间相互调用(mix calls)遵循的是 ATPCS(ARM-Thumb Procedure CallStandard),ATPCS主要是定义了函数呼叫时参数的传递规则以及如何从函数返回 不同于x86的参数传递规则,ATPCS建议函数的形参不超过4个,如果形参个数少于或等于4,则形参由R0,R1,R2,R3四个寄存器进行传递;若形参个数大于4,大于4的部分必须通过堆栈进行传递。 我们先讨论一下形参个数为4的情况. 实例1: test_asm_args.asm //------------------------------------------------------------
[单片机]
汇编语言 判断学生成绩是否及格
设某个学生的英语成绩已存放在AL寄存器中,如果低于60分,那么打印F(FAIL);若高于或等于85分,则打印G(GOOD);当在60分和84分之间时,打印P(PASS)。 assume cs:code, ds:data data segment score db 90 ; 分数 give_a_mark db 0, '$' ; 评分 data ends code segment start: mov ax, data mov ds, ax ; 初始化 ds,将data段的偏移地址赋值给 ds mov dx, 0 mov al, ds:s
[单片机]
<font color='red'>汇编语言</font> 判断学生成绩是否及格
c51与汇编语言的接口
1.c51与汇编语言的模块内接口 有时候,需要使用 汇编语言 来编写程序,比如对硬件进行操作或在一些对时钟要求很严格的场合,但又不希望用汇编语言来编写全部程序或调用汇编语言编写的函数,那么可以通 过预编译指令 asm',在C代码中插入汇编代码。 方法是用#pragma语句。具体结构是: #pragma asm 汇编行 #pragma endasm 这种方法是通过#pragma asm和#pragma endasm告诉c51编译器,中间行不用编译为汇编行。例如: 2.c51与汇编语言的模块间接口 C51模块与汇编语言模块的接口较简单,分别用C5l与A51对源文件进行编译,然后用L51连接obj文件即可。模块
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved