利用call、ret指令实现小写单词转大写

assume cs:code

data segment
	db 'conversation'
data ends

code segment

start:	mov ax, data
		mov ds, ax
		mov si, 0		;ds:si指向字符串(批量数据)所在空间的首地址
		
		mov cx, 12		;cx存放字符串的长度
		call capital	
		
		mov ax, 4C00H
		int 21H
		
capital:and byte ptr [si], 11011111B
		inc si
		loop capital
		ret
		
code ends
end start
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
下面是一份 x86 汇编代码,实现了从键盘读取一个字符,将其换为相应的大小写,并将结果显示在屏幕上。 ``` section .data ; 无需定义任何数据 section .bss buffer resb 1 ; 用于存储输入的字符 section .text global _start ; 从键盘读取一个字符 read_char: mov eax, 3 ; 系统调用号:sys_read mov ebx, 0 ; 文件描述符:标准输入 mov ecx, buffer ; 输入缓冲区 mov edx, 1 ; 需要读取的字节数 int 0x80 ; 调用 Linux 系统调用 ret ; 返回调用者 ; 将字符换为小写 to_lower: cmp byte [buffer], 'A' jl to_upper cmp byte [buffer], 'Z' jg to_upper add byte [buffer], 0x20 ; 将大写字母换为小写字母 ret ; 返回调用者 ; 将字符换为大写 to_upper: cmp byte [buffer], 'a' jl finish_conversion cmp byte [buffer], 'z' jg finish_conversion sub byte [buffer], 0x20 ; 将小写字母换为大写字母 ret ; 返回调用者 ; 将换后的字符显示在屏幕上 print_char: mov eax, 4 ; 系统调用号:sys_write mov ebx, 1 ; 文件描述符:标准输出 mov ecx, buffer ; 需要打印的字符 mov edx, 1 ; 需要打印的字节数 int 0x80 ; 调用 Linux 系统调用 ret ; 返回调用者 ; 主程序入口 _start: ; 从键盘读取一个字符 call read_char ; 将字符换为相应的大小写 call to_lower ; call to_upper ; 如果需要将字符换为大写,取消注释这行代码并注释上一行代码 ; 将换后的字符显示在屏幕上 call print_char ; 退出程序 mov eax, 1 ; 系统调用号:sys_exit xor ebx, ebx ; 返回值:0 int 0x80 ; 调用 Linux 系统调用 ``` 这份代码使用了 Linux 系统调用实现输入和输出。它首先从标准输入(键盘)读取一个字符,然后根据字符的大小写将其换为相应的大小写形式,最后将换后的字符打印到标准输出(屏幕)上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X-jazz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值