汇编语言程序设计——分支结构例4

汇编语言程序设计——分支结构例4

设计目标

从键盘输入英文单词,将其中的小写字母变为大写。

设计思路

(1)用 AND 指令将小写字母的 ASCII 码的第 5 位变为 0 即为大写字母;

(2)用 DOS 的 9 号功能显示提示信息;

(3)用 DOS 的 10 号功能输入英文字母。

5-4.asm

;5-4.asm 输入英文单词,将小写转换为大写
data segment
	mess1 db 0ah,0dh,'input:$'
	mess2 db 0ah,0dh,'output:$'
	buff db 10,?,10 dup(?)
data ends

code segment
	assume cs:code,ds:data
start:
	mov ax,data
	mov ds,ax
prog1:
	mov dx,offset mess1	;显示提示信息1
	mov ah,9
	int 21h
	mov dx,offset buff 	;输入字符串
	mov ah,10
	int 21h
	mov cl,buff+1		;实际输入的字母的个数
	mov bx,2			;第一个字母的地址
	mov dx,offset mess2	;显示提示信息2
	mov ah,9
	int 21h
let1:
	and buff[bx],0dfh	;小写字母变大写
	mov dl,buff[bx]		;循环显示每个字母
	mov ah,2
	int 21h
	inc bx
    dec cl
    jnz let1
	mov ah,4ch
	int 21h
code ends
end start

运行结果:

汇编语言程序设计——分支结构例4_第1张图片

本例采用 “逻辑与” AND 指令将某位屏蔽为 0。and buff[bx],0dfh 该指令中源操作数为十六进制 dfh,写成二进制为 11011111,可看出除了第 5 位为 0,其余都是 1 。因此,不论目的操作数是何值,只要是和 DFH 相与,结果的第 5 位清 0,其余位保持不变。这样就达到了将小写字母变为大写字母的目的。

你可能感兴趣的:(汇编语言)