微机原理与接口技术——将所有的小写字母转换为大学字母

实验内容:

编写子程序:输入大写字母,改写成小写字母,其他则不变。共判断10次。
利用debug中的mov指令往寄存器里输入相应的ASCII码,在debug状态下进行调试。用单步跟踪的方法验证指令的功能。在DOSbox虚拟机下进行相应操作。如果是小写的话需要进行减去20H,如果是大写的则保持不变

代码如下:

stack	segment stack	
dw	512 dup (?)	
stack	ends				
data	segment			
string  db 'please input a character',0dh,0ah,'$'    ;定义字节型字符串


data	ends				
code	segment  	 
assume  cs:code,ds:data,ss:stack;
start:
    mov ax, data                     ;定义数据段地址给ds
    mov ds,ax
    MOV DX,OFFSET string          ;展示标题
	MOV	AH,09H		           ;在屏幕上显示一个字符串 
	INT 21H			
    mov cx,9                        ;定义循环次数
    
    mov ah,00h                      ;从键盘输入字符,存入al当中

    int 16h      
    call change                       ;定义子程序
    jmp next  
    
next:                          ;循环,该段代码重复九次,即键盘输入九个字符
  mov ah,00h
  int 16h      
  call change                     
  dec cx                            ;cx自减
  jz ending                         ;若cx=0,程序结束
  jmp next
   
change proc                        ;定义子程序
mov ah,02h                         ;显示从键盘当中输入的字符到屏幕上
mov dl,al
int 21h

cmp al,'a'                            ;如果字符的ASCII码小于a的ASCII码
jb toSmall
cmp al,'z'                            ;如果字符的ASCII码大于z的ASCII码

ja toSmall

sub al,20h                            ;如果在a到z之间,al自减20h

toSmall:                               ;如果大于z或者小于a,直接输出
mov ah,02h
mov dl,al
int 21h
ret

ending:
	MOV	AX,4C00H		;go back to dos
	INT	21H
	
CODE	ENDS
	END	START

通过观察可以发现可以从键盘逐个输入字符,并在屏幕上完成大写到小写的转换。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值