内存自source开始有20个数字、大写字母、小写字母的混合串(比如:1234567890abceFGHIJ)编程将其中的数字符号挑选出来存储到dst开始的内存中,并将结果显示到CRT上。

内存自source开始有20个数字、大写字母、小写字母的混合串(比如:1234567890abceFGHIJ)编程将其中的数字符号挑选出来存储到dst开始的内存中,并将结果显示到CRT上。
(扩展A:做一个菜单,选1,2,3,4分别输出数字、大写、小写及退出; 扩展B:同时输出数字、大写、小写的个数)

data segment
        menu db "1 print num",0dh,0ah
                  db "2 print upper case",0dh,0ah
                  db "3 print lower case",0dh,0ah
                  db "4 exit",0dh,0ah,'$'
       choice db "please choice 1 2 3 4: ",0dh,0ah,'$'
       
       source db "1234567890abceFGHIJ"
       count equ $-source
        dst db 20 dup(?)
     crlf db 0aH,0dH,"$";回车换行
data ends
code segment
assume cs:code,ds:data,es:data
start:
        mov ax,data
        mov ds,ax

        mov dx,offset menu
        mov ah,9
        int 21h

        mov dx,offset choice
        mov ah,9
        int 21h
        mov ah,1
        int 21h
      
        cmp al,'1'
        je num
        cmp al,'2'
        je  upper
        cmp al,'3'
        je  lower
        jmp exit

num:   
         mov bx, offset source
	     mov si, offset dst ;指针
	     mov cl, count
num1:
         mov al,[bx]
         cmp al,30h      ;30h-39h为数字
         jb num2
         cmp al,39h
         ja num2
         mov [si],al
         inc si
num2:
         inc bx
         dec cl
         jnz num1
         
         jmp finally

upper:
         mov bx, offset source
	     mov si, offset dst
	     mov cl, count
upper1:
         mov al,[bx]
         cmp al,41h      ;41h-5ah为大写
         jb upper2
         cmp al,5ah
         ja upper2
          mov [si],al
         inc si
upper2:
         inc bx
         dec cl
         jnz upper1
         
         jmp finally
lower:
         mov bx, offset source
	     mov si, offset dst
	     mov cl, count
lower1:
         mov al,[bx]
         cmp al,61h;61h-7ah
         jb lower2
         cmp al,7ah
         ja lower2
         mov [si],al
         inc si
lower2:
         inc bx
         dec cl
         jnz lower1
         
         jmp finally
finally:	
          mov byte ptr[si],'$'
          lea dx,crlf
          mov ah,9
          int 21h
         mov dx,offset dst
         mov ah,9
         int 21h
         lea dx,crlf
          mov ah,9
          int 21h
	      jmp start
		  
exit:
	mov ah, 4cH
	int 21H
code ends
end start
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nabobess

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值