问题:内存自source开始有20个数字、大写字母、小写字母的混合串(比如:1234567890abceFGHIJ)编程将其中的数字符号挑选出来存储到dst开始的内存中,做一个菜单,选1,2,3分别输出数字、大写、小写字母及其个数,选4、退出。

data segmentmenu     db "1 print num", 0dh, 0ah ;定义打印菜单db "2 print upper case", 0dh, 0ahdb "3 print lower case", 0dh, 0ahdb "4 exit", 0dh, 0ah, '$' ;0dh回车,0ah换行choice  db "please choice 1 2 3 4: ", 0dh,0ah,'$'NumOut     db 0dh, 0ah,"The number of Num is :$"UpperOut db 0dh, 0ah,"The number of Upper is :$"LowerOut   db 0dh, 0ah,"The number of Lower is :$"source db "1234567890abcdeFGHIJ"count equ $-source ;count为混合串长度dst db 20 dup(?) ;dst内存开始存放结果Nonum    db 0 ;分别用于统计数字、大、小写字母的个数Noupper db 0Nolower db 0
data endscode segmentassume cs:code, ds:data, es:data
start:mov ax, data ;将数据段地址装入段寄存器mov ds, axmov Nonum,0mov Noupper,0mov Nolower,0mov dx, offset menu ;调用9功能打印字符串mov ah, 9int 21hmov dx, offset choicemov ah, 9int 21hmov ah, 8 ;调用8功能,输入int 21hcmp al, '1'jz numcmp al, '2'jz upcmp al, '3'jz low1jmp exit
;选出数字符号并显示
num:mov bx, offset sourcemov si, offset dst ;si存放结果,从dst开始存放mov cl, count
next1:mov al, [bx]cmp al, 30h ;大于39h小于30h不是数字跳转到l1jb l1cmp al, 39hja l1mov [si], aladd Nonum, 1inc si
l1:inc bxdec cljnz next1mov dx,offset NumOutmov ah,9int 21hmov al,NonumCALL B_TO_D16 ;调用子程序打印统计个数jmp dsp
;选出大写字母符号并显示
up:mov bx, offset sourcemov si, offset dstmov cl, count
next2:mov al, [bx]cmp al, 41hjb l2cmp al, 5ahja l2mov [si], aladd Noupper, 1inc si
l2:inc bxdec cljnz next2mov dx,offset UpperOutmov ah,9int 21hmov al,NoupperCALL B_TO_D16 jmp dsp
;选出小写字母符号并显示
low1:mov bx, offset sourcemov si, offset dstmov cl, count
next3:mov al, [bx]cmp al, 61hjb l3cmp al, 7ahja l3mov [si], aladd Nolower, 1inc si
l3:inc bxdec cljnz next3mov dx,offset LowerOutmov ah,9int 21hmov al, NolowerCALL B_TO_D16
dsp:    mov byte ptr[si],'$' ;输出si的内容mov dl,0ahmov ah,2int 21hmov dl,0dhmov ah,2int 21hmov dx,offset dstmov ah,9int 21hjmp start
B_TO_D16 PROC NEAR;16位二进制转十进制子程序AND AH,0 ;ah存放余数,初始化为0MOV BL,100DIV BL ;ax/100得到百位数,存放al中MOV CL,AH ;余数暂存于cl中ADD AL,30H ;输出百位数MOV DL,ALMOV AH,02HINT 21HMOV AL,CL MOV BL,10AND AH,0DIV BL ;ax/10得到十位数ADD AL,30H ;输出十位数MOV DL,ALMOV CL,AHMOV AH,02HINT 21HMOV AL,CL ;输出个位数ADD AL,30HMOV DL,ALMOV AH,02HINT 21HRET
B_TO_D16 ENDP
exit:mov ah, 4cHint 21Hcode endsend start

(汇编)输出数字、大写、小写字母相关推荐

  1. python中小写字母和数字用什么表示_Python – 检查数字,大写,小写字母和特殊字符的输入...

    这包含一些更高级的概念,但应该很容易遵循: import string def long_enough(pw): 'Password must be at least 6 characters' re ...

  2. 编写程序,如果输入的是大写字母,则输出对应的小写字母,如果输入的是小写字母,则输出对应的大写字母;如果输入的是数字,原样输出;按回车结束

    直接上代码: ;如果输入的是大写字母,则输出对应的小写字母, ;如果输入的是小写字母,则输出对应的大写字母: ;如果输入的是数字,原样输出:按回车结束 ;A = 41h Z = 5ah ;我们假设输入 ...

  3. 输入一个字符,判断它如果是小写字母输出其对应大写字母;如果是大写字母输出其对应小写字母;如果是数字输出数字本身;如果是空格,输出“space”;如果不是上述情况,输出“other”。

    输入一个字符,判断它如果是小写字母输出其对应大写字母:如果是大写字母输出其对应小写字母:如果是数字输出数字本身:如果是空格,输出"space":如果不是上述情况,输出"o ...

  4. 数据结构:假设有一个带头结点的单链表L,每个结点值由单个数字、小写字母和大写字母构成。设计一个算法将其拆分成3个带头结点的单链表L1、L2和L3,L1包含L中的所有数字结点,L2包含L中的所有小写字母

    假设有一个带头结点的单链表L,每个结点值由单个数字.小写字母和大写字母构成.设计一个算法将其拆分成3个带头结点的单链表L1.L2和L3,L1包含L中的所有数字结点,L2包含L中的所有小写字母结点,L3 ...

  5. 读取文件并输出,输出时将小写字母转为大写

    1.获取文件属性(检查文件):stat() struct stat buf_stat; stat("temp.txt", &buf_stat);// #include &l ...

  6. 【正则】包含大写小写字母数字的8到16位的密码正则

    public static void main(String[] args) {boolean flag = true;while (flag){Scanner sc = new Scanner(Sy ...

  7. 输入一个大写字母使输出相应的小写字母,输入球体的半径,求其体积与表面积(11)

    题目:输入一个大写的字母,输出相应的小写字母 # include<stdio.h>int main() {char ch;printf("Please input the upp ...

  8. 读取文件并输出,输出时将小写字母转为大写 [ 2 ]

    1 /*2 * FILE: p48_file2lower.c3 * DATE: 201801064 * --------------5 * DESCRIPTION: 读取文件内容,输出时将小写字母转为 ...

  9. 8位数:数字、小写字母字典思考

    八位数字典:包含数字.小写字母 结果:******** 数字:0123456789 小写字母:abcdefghijklmnopqrstuvwxyz 限制小写字母个数:0个-8个: 8个数字+0个字母: ...

  10. java实现随机输出26个小写字母

    java实现随机输出26个小写字母 方法:在'a'加随机偏移量,随机偏移量用Math类的random方法实现 package com.word.word; //随机输出26个英文字母 public c ...

最新文章

  1. ASP.NET EntityFrameworkCore code first 多对多设计
  2. Sklearn:sklearn.preprocessing之StandardScaler 的transform()函数和fit_transform()函数清晰讲解及其案例应用
  3. RecyclerView点击事件监听
  4. 大数据WEB阶段(九)Servlet+Request
  5. 【STM32】串口通信编程
  6. 基本类型和字符串互相转换
  7. 使用Windows服务发布WCF服务
  8. 【Python3】【爬虫】meizituSpider
  9. 「mac操作指南」WidsMob HEIC将HEIC/HEIF 转换为 JPEG/PNG/TIFF格式
  10. poj 4451 Dressing 一个小模拟 金华regional
  11. 历数2017年五大Linux痛点,哪个戳到了你?
  12. k3导入账套_K3金蝶维护绝密(内部技术教程)
  13. Android Exif 解析
  14. Java 服务器版超市管理系统,基于JAVA的超市进销存管理系统.doc
  15. 网路学员面试常见问题:
  16. Gbit以太交换BCM56504
  17. linux_linux自动化换源等优化美化自动化操作脚本/oh my zsh安装/卸载与删除/vim/vi卸载与更新异常/linux发行版本/内核版本查看
  18. 如何连接小米空调伴侣2
  19. 频率域滤波matlab函数,6、频率域滤波
  20. js实现桌面录屏功能

热门文章

  1. 谷歌步快播“后尘”推Chromecast,巧合 OR 抄袭?
  2. VulnHub系列之Jarbas渗透测试
  3. 远程过程调用知识点归纳
  4. getch和ungetch的使用
  5. subunit 协议
  6. iOS小技能:商户进件风险控制强化
  7. 内网安全:Socks 代理 || 本地代理 技术.
  8. Spring MVC 高级技术之文件上传(multipart)
  9. php程序员拜年代码,阿里大于PHP版短信发送DEMO代码实例
  10. 光缆弹性模量计算_皮带弹性模量一般是多少