⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 whole.asm

📁 从键盘输入一个字符串, 1.先把它原样显示一遍 2.将其中的小写字母转换为大写显示 3.将其中的大写字母转换为小写显示 4.将其中的大小写字母互换显示 要求:显示字符串的功能调用采用宏,大
💻 ASM
字号:

show macro string
	
	mov dx,0ah	;回車換行
	mov ah,02h
	int 21h

	mov dx,0dh
	mov ah,02h
	int 21h

	mov dx,offset string	;顯示字符串
	add dx,2
	mov ah,09h
	int 21h


endm
data segment
	s db 'INPUT THE STRING',0ah,0dh,'$'
	user db 100 dup('$')
data ends

code segment
	assume cs:code,ds:data
start:
	mov ax,data
	mov ds,ax

	mov dx,offset s		;提示輸入
	mov ah,09h
	int 21h

	mov dx,offset user	;輸入字符串
	mov ah,0ah
	int 21h

	mov dx,0ah	;回車換行
	mov ah,02h
	int 21h

	mov dx,0dh
	mov ah,02h
	int 21h

	show user
	call change
	show user
	call up
	show user
	call down
	show user

	mov ax,4c00h
	int 21h

up proc far	;小寫改爲大寫

	mov si,offset user
	add si,2

l0:	cmp byte ptr[si],'$'
	je l3
	cmp byte ptr[si],'z'
	jbe l1
	inc si
	jmp l0
l1:
	cmp byte ptr[si],'a'
	jnl l2
	inc si
	jmp l0
l2:
	sub byte ptr[si],20h
	inc si
	jmp l0
l3:
	ret
up endp

down proc far	;大寫改爲小寫

	xor dx,dx
	mov si,offset user
	add si,2

l4:	cmp byte ptr[si],'$'
	je l7
	cmp byte ptr[si],'Z'
	jbe l5
	inc si
	jmp l4
l5:
	cmp byte ptr[si],'A'
	jnl l6
	inc si
	jmp l4
l6:
	add byte ptr[si],20h
	inc si
	jmp l4
l7:
	ret
down endp

change proc far		;大小寫轉換

	push ax
	push dx
	
	xor dx,dx
	mov si,offset user
	add si,2
l8:
	cmp byte ptr[si],'$'	
	je l14
	cmp byte ptr[si],'z'	;判斷是否可能為小寫字母
	jbe l9
	inc si
	jmp l8
l9:
	cmp byte ptr[si],'a'	;踫到小寫字母
	jnl l10
	jmp l11
l10:
	sub byte ptr[si],20h	;轉換為大寫字母
	inc si
	jmp l8
l11:
	cmp byte ptr[si],'Z'	;判斷是否可能為大寫字母
	jbe l12
	inc si
	jmp l8
l12:
	cmp byte ptr[si],'A'	;踫到大寫字母
	jnl l13
	inc si
	jmp l8
l13:
	add byte ptr[si],20h	;轉換為小寫字母
	inc si
	jmp l8
l14:
	pop dx
	pop ax
	ret
change endp

code ends
	end start

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -