题目
写个汇编程序,将以0结尾的字符串中的小写字母转换为大写字母。
定义函数 letterc,用于转换,参数 ds:si 指向字符串的首地址。
源码
汇编源码:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 
 | ; 把字符串中的小写字母转换为大写assume cs:code
 
 data segment
 db "Beginner's All-purpose Symbolic Instruction Code.",0
 data ends
 
 stack segment
 dw 8 dup (0)
 stack ends
 
 code segment
 begin:
 mov ax,stack
 mov ss,ax
 mov sp,10h
 mov ax,data
 mov ds,ax
 mov si,0
 call letterc
 
 mov ax,4c00h
 int 21h
 
 letterc:
 push si
 s:
 mov cl,[si]
 mov ch,0
 jcxz ok
 cmp cx,'a'
 jna s0
 cmp cx,'z'
 jnb s0
 and byte ptr [si],11011111b
 
 s0:
 inc si
 jmp short s
 
 ok:
 pop si
 ret
 
 code ends
 end begin
 
 | 
运行结果
截图:
