「汇编语言 第 3 版 王爽」- 参考答案:实验 11 编写子程序

  CREATED BY JENKINSBOT

参考答案

assume cs:codeseg

dataseg segment
    db "Beginner's All-purpose Symbolic Instruction Code.",0
dataseg ends

codeseg segment
start:
	mov ax, dataseg
	mov ds, ax
	mov si, 0
	call letterc
	mov ax, 4c00H
	int 21H

letterc:
	push cx
	push si

	_letterc_start:
		mov cl, ds:[si] 				; 读取字母
		mov ch, 0						; 判断当前字符是否为零
		jcxz _letterc_end				; 如果为零,直接结束
		cmp cl, 97						; 判断是否为小写 [97, 122]
		jb _letterc_next_char			; 不为小写则跳走
		cmp cl, 122
		ja _letterc_next_char
		sub cl, 20H						; 将字母转化为大写
		mov ds:[si], cl
	_letterc_next_char:
		inc si
		jmp short _letterc_start
	_letterc_end:

	pop si
	pop cx
	ret

codeseg ends

end start

参考文献

CSDN/汇编语言王爽第三版答案
百度文库/汇编语言实验答案 (王爽)