24个汇编实例小程序
小程序案例大全
小程序案例大全随着移动互联网的快速发展,小程序已经成为了各行各业的发展趋势。
小程序的便捷、高效、易用性受到了越来越多用户的青睐。
在这篇文档中,我们将为大家介绍一些小程序案例,希望能够给大家带来一些灵感和启发。
1. 餐饮小程序。
餐饮行业是小程序应用的一个热门领域。
许多餐厅、饮品店都开发了自己的小程序,方便顾客在线预订、点餐、外卖等服务。
通过小程序,顾客可以方便地浏览菜单、了解店内优惠活动、实时查看餐厅排队情况等。
同时,餐饮店也可以通过小程序管理顾客订单、营销推广等,提升经营效率。
2. 酒店小程序。
酒店行业也是小程序的应用领域之一。
许多酒店开发了自己的小程序,让顾客可以在线预订客房、了解酒店设施、查询周边交通等信息。
通过小程序,酒店可以提供更便捷的服务,提升顾客入住体验,同时也可以进行会员管理、营销推广等工作。
3. 教育培训小程序。
在教育培训领域,小程序也有着广泛的应用。
许多培训机构、学校都开发了小程序,方便学生和家长在线预约课程、了解教学内容、与老师进行沟通等。
通过小程序,教育培训机构可以提供更便捷的服务,管理学生信息、课程安排等,提升教学质量。
4. 零售小程序。
零售行业是小程序应用的另一个热门领域。
许多零售商开发了自己的小程序,方便顾客在线购物、了解商品信息、参与促销活动等。
通过小程序,零售商可以提供更便捷的购物体验,管理库存、订单等,提升销售效率。
5. 医疗健康小程序。
在医疗健康领域,小程序也有着重要的应用价值。
许多医院、诊所开发了小程序,方便患者在线预约挂号、了解医生排班、查看检查报告等。
通过小程序,医疗机构可以提供更便捷的就诊服务,管理患者信息、医生排班等,提升医疗服务质量。
总结。
以上是一些小程序的应用案例,小程序已经深入到各个行业的方方面面。
随着技术的不断发展,小程序的应用范围将会更加广泛,带来更多的便利和创新。
希望以上案例能够给大家带来一些启发,也欢迎大家分享更多有趣的小程序应用案例。
汇编小程序_5
;========================================================== =====; 文件名称: Asm3-2.asm; 功能描述: 双字节无符号数乘法程序 R2R3*R4R5=[R0](连续4个单元);========================================================== =====O RG 0000HL JMP MAINO RG 0100HMAIN: MOV R0, #23H ;运算结果低位地址M OV A, R0P USH ACCC LR AM OV R7, #4LP1: MOV @R0, A ;运算结果存储单元清零D EC R0D JNZ R7, LP1P OP ACCM OV R0, AM OV A, R3M OV B, R5M UL AB ;计算R3*R5M OV @R0, A ;计算的低8位保存M OV A, BD EC R0M OV @R0, A ;保存运算的高8位M OV A, R2M OV B, R5M UL AB ;计算R2*R5A DD A, @R0 ;此次运算低8位+R3*R5运算的高8位M OV @R0, AD EC R0M OV A, BA DDC A, #00H ;R2*R5的高8位加进位位M OV @R0, AI NC R0M OV A, R3M OV B, R4M UL AB ;计算R3*R4A DD A, @R0M OV @R0, AM OV A, BD EC R0A DDC A, @R0M OV @R0, AD EC R0C LR AA DDC A, #00HM OV A, @R0M OV A, R2M OV B, R4M UL AB ;计算R2*R4I NC R0A DD A, @R0M OV @R0, AM OV A, BD EC R0A DDC A, @R0M OV @R0, AN OPL JMP MAIN ;设置断点查看运算结果;如需进行下一次运算, 可修改R2R3,R4R5的值END。
汇编经典小程序
汇编经典小程序(总5页) -CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除实验一:判断一个数X的正,负数,还是零。
(假设是正数,输出+,是负数,输出-,是零,输出This is a zore !)DATA SEGMENTX DB 10CR EQU 0DHLF EQU 0AHW DB 'This is a zore!',CR,LF,'$'ZHENG DB '+',CR,LF,'$'FU DB '-',CR,LF,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,XAND AL,ALJZ L1SHL AL,1JC L3JMP L2L1: MOV DX,OFFSET WMOV AH,9INT 21HJMP L4L2: MOV DX,OFFSET ZHENGMOV AH,9INT 21HJMP L4L3: MOV DX,OFFSET FUMOV AH,9INT 21HJMP L4L4: MOV AH,4CHINT 21HCODE ENDSEND START实验二:求十个数中的最小数,并以十进制输出。
(若要求最大的,只要把JC 改为JNC 即可)(仅局限于0---16间的数比较,因为ADD AL,30H只是针对一位的十六进制转换十进制的算法)DATA SEGMENTXDAT DB 0AH,1FH,02H,03H,04H,05H,06H,07H,08H,09HMIN DBCR EQU 0DHLF EQU 0AHW DB ' is min',CR,LF,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV CX,9MOV SI,OFFSET XDATMOV AL,[SI]L2: CMP AL,[SI+1]JC L1MOV AL,[SI+1]L1: INC SILOOP L2ADD AL,30HMOV DL,ALMOV AH,2INT 21HMOV DX,OFFSET WMOV AH,9INT 21HCODE ENDSEND START实验三:设有3个单字节无符号数存放在BUF开始的缓冲区中,编写一个能将它们从大到小从新排列的程序。
24个汇编实例小程序文件
24个汇编小程序题目列表:逆序输出字符串“BASED ADDRESSING”从键盘上输入两个数,分别放到x,y单元,求出它们的和试编写一段程序,要求在长度为10h的数组中,找出大于42h的无符号数的个数并存入地址为up开始区域,找出小于42h的无符号数的个数并存入地址为down的开始区域键盘输入一段字符串,其中小写字母以大写字母输出,其他字符不变输出从键盘上就收一个小写字母,找出它的前导字符和后续字符,在顺序显示这三个字符把一个包含20个数据的数组M分成两组:正整数组P和负整数组N,分别把这两个数组中的数据的个数显示出来求出首地址为data的100个字数组中的最小偶数,并把它放在ax中输入两船字符串string1和string2,并比较两个字符串是否相等,相等就显示“match”,否则显示“no match”从键盘接收一个四位的十六进制数,并在终端显示与它等值的二进制数从键盘输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示计数结果有一个首地址为mem的100个字的数组,试编程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零从键盘上输入一串字符(用回车键结束,使用10号功能调用)放在string中,是编制一个程序测试字符串中是否存在数字。
如有,则把cl的第五位置1,否则将该位置置0在首地址为data的字数组中,存放了100h的16位字数据,试编写一个程序,求出平均值放在ax寄存器中,并求出数组中有多少个数小于此平均值,将结果放在bx寄存器中(f分别考虑有符号数、无符号数情况)一直数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。
试编制一个程序,把既在A中又在B中出现的整数存放于数组C中设在A、B和D单元中分别存放着三个数。
若三个数都不是0,则求出三个数的和并存放在S 单元,若其中有一个数为0,则把其它两个单元也清零。
请编写此程序从键盘输入一系列字符(以回车键结束),并按字母、数字和其他字符分类计数,最后显示这三类的计数结果已定义两个整数变量A和B,试编写程序完成以下功能(1)若两个树种有一个是奇数,则将奇数存入A中,偶数存入B中(2)若两个数均为奇数,则将两个数加1后存回原变量(3)若两个数均为偶数,则两个变量均不变写一段子程序skiplines,完成输出空行的功能。
(完整版)8086汇编经典例程,推荐文档
sub bl,26 mov al,'a' add al,bl
MOV CX,00H WAIT1: LOOP WAIT1
;延时计数器 ;延时
DW 2 DUP (25*8,25*8,50*8) DW 12 DUP (25*8),100*8
jmp next40
DEC DX
next24: sub bl,52
==========================================
MAIN ENDP
MOV AX,[SI]
5. 编写一个数组排序(从小到大)的小程序,数组在程
序中定义,程序先将原数组显示一遍,然后排序,再
DISP PROC
将排好序的数组显示一遍。
PUSH SI
==========================================
MUS_TIME2 DW 3 DUP(50),25,25,50,25,25,100 DW 2 DUP(50,50,25,25),100 DW 3 DUP(50,25,25),100
crlf proc push ax push dx
音演奏歌曲 ========================================== ;这是一个音乐程序,按大写字母“A”,唱乐曲“玛丽
ccc segment assume cs:ccc,ds:qqq
main proc far start: mov ax,qqq
mov ds,ax
next3:
jmp next10 cmp al,'a' jnae next4 cmp al,'z' ja next4 sub al,'a'
小程序案例大全
小程序案例大全小程序案例一:网易云音乐网易云音乐是一个非常成功的小程序案例。
用户可以在小程序上听歌、搜索歌曲、创建播放列表、关注喜欢的歌手和朋友的动态等。
通过小程序,用户可以方便地随时随地享受音乐。
小程序案例二:美团外卖美团外卖是一个非常知名的小程序案例。
用户可以在小程序上浏览餐厅、点餐、下单、支付,并享受到送餐服务。
美团外卖小程序不仅方便了用户,也给餐厅和骑手提供了更多的订单和收入。
小程序案例三:滴滴出行滴滴出行也是一个非常成功的小程序案例。
用户可以通过小程序预约打车,选择车型、输入目的地,并实时查看司机位置和车辆到达时间。
滴滴出行小程序不仅方便了用户出行,也提高了司机的接单率和收入。
小程序案例四:京东购物京东购物是一个非常受欢迎的小程序案例。
用户可以在小程序上浏览商品、下单购买,并享受到快速的配送服务。
京东购物小程序不仅方便了用户购物,也给卖家带来了更多的销售机会。
小程序案例五:微信支付微信支付是一个非常成功的小程序案例。
用户可以通过小程序进行在线支付,支付水电费、手机费、购买电影票等,并享受到优惠和便利的支付体验。
微信支付小程序不仅方便了用户,也给商家提供了更多的支付渠道和服务。
小程序案例六:腾讯视频腾讯视频是一个非常知名的小程序案例。
用户可以通过小程序观看电影、电视剧、综艺节目等视频内容,还可以实时评论、分享和收藏。
腾讯视频小程序不仅方便了用户观看视频,也为视频内容提供了更多的传播渠道。
小程序案例七:滴滴共享单车滴滴共享单车是一个非常受欢迎的小程序案例。
用户可以通过小程序查找附近的共享单车、扫码开锁、骑行,并实时查看车辆位置和行驶路径。
滴滴共享单车小程序不仅方便了用户出行,也节约了城市交通资源,减轻了交通拥堵的问题。
以上是一些成功的小程序案例,它们都通过小程序给用户带来了很多便利和福利,也为企业带来了更多的机遇和收益。
小程序的发展前景非常广阔,希望有更多的企业和开发者能够利用小程序这一平台,创造出更多有意义和有影响力的案例。
20个简单汇编语言程序 -回复
20个简单汇编语言程序-回复简明了解汇编语言,让我们先了解一下汇编语言的基本概念和特点。
汇编语言是一种低级语言,用于与计算机硬件进行沟通和交互,它是由一系列指令组成的。
与高级语言相比,汇编语言更加接近计算机的硬件和操作,因此它的指令更直观,更加底层。
下面我们来看一下20个简单的汇编语言程序:1. [将两个数相加并存储到一个寄存器中]2. [将两个数相加并存储到内存中]3. [将一个寄存器的值存储到内存中]4. [从键盘输入一个数并存储到内存中]5. [从内存中读取一个数并输出到屏幕上]6. [将两个寄存器的值进行逻辑与操作]7. [将两个寄存器的值进行逻辑或操作]8. [将两个寄存器的值进行逻辑非操作]9. [将一个寄存器的值左移一位]10. [将一个寄存器的值右移一位]11. [将一个寄存器的值加一]12. [将一个寄存器的值减一]13. [将一个寄存器的值与一个常数相加]14. [将一个寄存器的值与一个常数进行逻辑与操作]15. [将一个寄存器的值与一个常数进行逻辑或操作]16. [将一个寄存器的值与一个常数进行逻辑非操作]17. [将一个寄存器的值与一个常数左移一位]18. [将一个寄存器的值与一个常数右移一位]19. [将一个寄存器的值与一个常数进行加一]20. [将一个寄存器的值与一个常数进行减一]现在,我们将一步一步地回答这个问题,写一篇1500-2000字的文章,帮助读者更好地理解这些汇编语言程序。
第一步:介绍汇编语言在这一步,我们将介绍汇编语言的基本概念、应用领域和优缺点。
我们将解释汇编语言与高级语言之间的区别,并讨论为什么学习汇编语言对于理解计算机系统和进行底层开发非常重要。
第二步:汇编语言基础知识在这一步,我们将介绍汇编语言的基本知识和概念。
我们将解释什么是指令、寄存器、内存等,并讨论它们在汇编语言中的作用和用法。
第三步:编写简单的汇编语言程序在这一步,我们将逐个介绍这20个简单的汇编语言程序,并提供详细的说明和示例代码。
汇编语言程序经典案例100例
当然可以帮你制作PPT!以下是关于《汇编语言程序经典案例 100例》的一份PPT大纲,以Markdown代码框的形式展示。你 可以根据这个大纲,进一步丰富内容,使其达到最少2500字 。
```markdown 汇编语言程序经典案例100例
01 汇编语言程序经典案例100例
案例六:汇编游戏
实现一个简单的汇编游戏,如猜数字或打砖块 结合图形和用户输入,展示汇编语言的实际应用
案例七:汇编与硬件交互
编写控制硬件设备的汇编程序,如LED显示控制 探讨汇编语言与底层硬件交互的原理和方法
案例八:内存管理
展示如何在汇编中进行内存分配和释放 解释堆栈、堆区和数据段的概念及其在汇编中的应用
汇编语言程序经典案例100例
案例一:Hello, World! 案例二:计算器 案例三:字符逆序 案例四:素数判断 案例五:文件操作 案例六:汇编游戏 案例七:汇编与硬件交互 案例八:内存管理 案例九:中断处理 案例十:多任务处理
案例一:Hello, World!
使用汇编语言编写经典的Hello, World!程序 解释程序的结构和汇编指令
案例二:计算器实现一个Fra bibliotek单的计算器程序,支持加减乘除运算 展示汇编中的数值处理和条件分支
案例三:字符逆序
编写程序将输入的字符串逆序输出 探讨字符串处理和循环结构在汇编中的应用
案例四:素数判断
判断输入的数字是否为素数 展示如何进行数值计算和判断,并介绍汇编中的位操作
案例五:文件操作
创建、读取、写入文件的汇编程序 分享文件操作所涉及的系统调用和汇编指令
案例九:中断处理
编写处理外部中断的汇编程序 探讨中断的概念、处理流程以及在汇编中的实现
小程序案例大全
小程序案例大全随着移动互联网的迅猛发展,小程序已经成为了各行各业的重要组成部分。
从餐饮到零售,从旅游到教育,小程序的应用场景越来越广泛。
在这篇文档中,我们将为大家介绍一些小程序案例,希望能给大家带来一些灵感和启发。
1. 餐饮行业。
在餐饮行业,小程序的应用非常普遍。
比如,很多餐厅都会开发自己的外卖小程序,方便顾客在线下单、支付和配送。
另外,一些连锁餐饮企业也会通过小程序来实现会员积分、预订餐桌等功能。
通过小程序,餐饮企业能够更好地服务顾客,提升用户体验。
2. 零售行业。
在零售行业,小程序同样发挥着重要作用。
很多品牌都会开发自己的电商小程序,让用户可以随时随地浏览商品、下单购买。
此外,一些线下实体店也会通过小程序来提供优惠券、会员卡等服务,吸引顾客到店消费。
小程序让零售行业实现了线上线下的无缝连接,为消费者带来更便利的购物体验。
3. 旅游行业。
在旅游行业,小程序的应用也非常广泛。
很多景区和旅行社都会开发自己的旅游小程序,提供景区导览、门票预订、线路规划等功能。
通过小程序,游客可以更方便地了解目的地信息,规划行程,提升旅游体验。
同时,旅游小程序也为景区和旅行社提供了更多营销和推广的机会。
4. 教育行业。
在教育行业,小程序也有着独特的应用。
一些在线教育平台会通过小程序提供课程浏览、选课、在线学习等功能,让学生可以随时随地进行学习。
同时,一些学校和培训机构也会开发小程序,方便家长了解学校动态、学生成绩等信息。
小程序为教育行业带来了更多的便利和可能性。
5. 医疗健康行业。
在医疗健康行业,小程序也有着重要的应用。
一些医院会开发预约挂号、报告查询等功能的小程序,方便患者就医。
同时,一些健康管理和医疗服务平台也会通过小程序来提供健康咨询、远程问诊等服务。
小程序让医疗健康更加智慧和便捷。
总结。
以上只是一部分小程序案例,实际上小程序的应用场景远不止这些。
随着技术的不断进步和创新,小程序将会在更多领域发挥作用,为用户和企业带来更多便利和机遇。
微信小程序成功案例
微信小程序成功案例微信小程序作为一种轻量级应用,已经成为了许多企业和个人开发者的首选。
它不仅可以在微信平台上快速传播,还可以提供丰富的功能和良好的用户体验。
下面,我们将介绍几个成功的微信小程序案例,希望能够给大家一些启发和借鉴。
首先,让我们来看一个餐饮行业的成功案例。
某餐厅开发了一个微信小程序,用户可以在小程序上浏览菜单、预订餐桌、在线支付等。
通过小程序,用户可以方便地了解菜品信息,选择就餐时间,并且无需等待即可享用美食。
这个小程序不仅提升了用户的就餐体验,还为餐厅带来了更多的订单和好评,成为了餐厅发展的一大利器。
其次,让我们来看一个零售行业的成功案例。
某家零售商开发了一个微信小程序,用户可以在小程序上浏览商品、下单购买、查看订单状态等。
通过小程序,用户可以随时随地购物,无需下载App或者打开网页,极大地提高了购物的便利性和效率。
这个小程序不仅为零售商带来了更多的销售额,还提升了用户的购物体验,成为了零售商的一大利润增长点。
最后,让我们来看一个教育行业的成功案例。
某家教育机构开发了一个微信小程序,学生和家长可以在小程序上预约课程、在线学习、查看成绩等。
通过小程序,学生和家长可以方便地了解课程安排,随时随地进行学习,还可以及时了解学习成绩和评价。
这个小程序不仅提升了教育机构的品牌形象,还提高了学生和家长的满意度,成为了教育机构的一大宣传利器。
通过以上案例的介绍,我们可以看到微信小程序在不同行业都取得了成功。
它不仅为企业带来了更多的商机,还提升了用户的体验和满意度。
因此,我们相信微信小程序在未来会有更广阔的发展空间,希望各行各业都能够充分利用微信小程序,为自己的发展注入新的动力和活力。
总结,微信小程序已经成为了许多企业和个人开发者的首选,通过以上案例的介绍,我们可以看到微信小程序在不同行业都取得了成功。
它不仅为企业带来了更多的商机,还提升了用户的体验和满意度。
因此,我们相信微信小程序在未来会有更广阔的发展空间,希望各行各业都能够充分利用微信小程序,为自己的发展注入新的动力和活力。
20个简单汇编语言程序
20个简单汇编语言程序摘要:一、汇编语言概述二、20 个简单汇编语言程序的分类1.算术运算类2.逻辑运算类3.移位操作类4.循环操作类5.条件跳转类6.子程序调用类7.输入输出类三、每类程序的简要说明和示例1.算术运算类2.逻辑运算类3.移位操作类4.循环操作类5.条件跳转类6.子程序调用类7.输入输出类四、总结正文:一、汇编语言概述汇编语言是一种低级编程语言,它与计算机硬件的操作紧密相关。
汇编语言通过指令的操作来实现对计算机硬件的控制。
与高级语言相比,汇编语言更加接近计算机硬件,执行效率更高。
但是,由于汇编语言依赖于特定的计算机架构,所以其可移植性较差。
二、20 个简单汇编语言程序的分类本文将为大家介绍20 个简单的汇编语言程序,这些程序可以分为以下几类:1.算术运算类:实现加、减、乘、除等基本算术运算。
2.逻辑运算类:实现与、或、非等基本逻辑运算。
3.移位操作类:实现左移、右移、循环移位等移位操作。
4.循环操作类:实现for 循环、while 循环等循环控制结构。
5.条件跳转类:实现if-else 语句、switch-case 语句等条件跳转控制结构。
6.子程序调用类:实现子程序的调用和返回。
7.输入输出类:实现对输入输出设备的操作,如从键盘读取数据、向屏幕输出数据等。
三、每类程序的简要说明和示例1.算术运算类算术运算类程序主要包括加法程序、减法程序、乘法程序和除法程序等。
例如,以下是一个简单的加法程序:```DATA SEGMENTA DW 10B DW 20SUM DW 0DATA ENDSCODE SEGMENT ASSUME DS:DATA, CS:CODE START:MOV AX, DATAMOV DX, SUMCALL ADDMOV AH, 02HINT 21HADD PROCMOV AX, PTR [DATA]ADD AX, PTR [DATA + 2]MOV PTR [SUM], AXRETADD ENDPCODE ENDSEND START```2.逻辑运算类逻辑运算类程序主要包括与运算程序、或运算程序和非运算程序等。
24个汇编实例小程序
24个汇编小程序题目列表:逆序输出字符串“BASED ADDRESSING”从键盘上输入两个数,分别放到x,y单元,求出它们的和是编写一段程序,要求在长度为10h的数组中,找出大于42h的无符号数的个数并存入地址为up开始区域,找出小于42h的无符号数的个数并存入地址为down的开始区域键盘输入一段字符串,其中小写字母以大写字母输出,其他字符不变输出从键盘上就收一个小写字母,找出它的前导字符和后续字符,在顺序显示这三个字符把一个包含20个数据的数组M分成两组:正整数组P和负整数组N,分别把这两个数组中的数据的个数显示出来求出首地址为data的100个字数组中的最小偶数,并把它放在ax中输入两船字符串string1和string2,并比较两个字符串是否相等,相等就显示“match”,否则显示“no match”从键盘接收一个四位的十六进制数,并在终端显示与它等值的二进制数从键盘输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示计数结果有一个首地址为mem的100个字的数组,试编程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零从键盘上输入一串字符(用回车键结束,使用10号功能调用)放在string中,是编制一个程序测试字符串中是否存在数字。
如有,则把cl的第五位置1,否则将该位置置0在首地址为data的字数组中,存放了100h的16位字数据,试编写一个程序,求出平均值放在ax寄存器中,并求出数组中有多少个数小于此平均值,将结果放在bx寄存器中(f分别考虑有符号数、无符号数情况)一直数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。
试编制一个程序,把既在A中又在B中出现的整数存放于数组C中设在A、B和D单元中分别存放着三个数。
若三个数都不是0,则求出三个数的和并存放在S单元,若其中有一个数为0,则把其它两个单元也清零。
请编写此程序从键盘输入一系列字符(以回车键结束),并按字母、数字和其他字符分类计数,最后显示这三类的计数结果已定义两个整数变量A和B,试编写程序完成以下功能(1)若两个树种有一个是奇数,则将奇数存入A中,偶数存入B中(2)若两个数均为奇数,则将两个数加1后存回原变量(3)若两个数均为偶数,则两个变量均不变写一段子程序skiplines,完成输出空行的功能。
汇编语言小程序例子
汇编语言小程序例子1.编写统计AX中1、0个数的源程序。
1的个数存入CH,0的个数存入CL。
CODE SEGMENTASSUME CS:CODESTART: MOV CX, 0MOV DX,17AA1: SUB DX, 1JZ AA3SHL AX, 1JNC AA2INC CHJMP AA1AA2: INC CLJMP AA1AA3: MOV AH,4CHINT 21HCODE ENDSEND START2.编写比较两个字符串STRING1和STRING2所含字符是否完全相同的源程序,若相同则显示“MATCH”,若不相同则显示“NO MATCH”。
程序:DATA SEGMENTR1 DB 'MATCH',0AH,0DHR2 DB 'NO MATCH',0AH,0DH STRING1 DB 'XXXXX'N1 EQU $-STRING1STRING2 DB 'YYYYY'N2 EQU $-STRING2DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATAMOV DS,AXMOV AX,N1CMP AX,N2JNZ AA1ADD AX,1LEA SI,STRING1LEA DI,STRING2 AA2: MOV BL,[SI] MOV BH,[DI]INC SIINC DISUB AX,1JZ AA3CMP BL,BHJZ AA2JMP AA1AA3: LEA BX,R1MOV CX,7AA4: MOV DL,[BX]INC BXMOV AH,2INT 21HLOOP AA4JMP EAA1: LEA BX,R2MOV CX,10AA5: MOV DL,[BX] INC BXMOV AH,2INT 21HLOOP AA5E: MOV AH,4CH INT 21HCODE ENDSEND START3.从键盘读入一个四位的十六进制数,CRT显示等值的二进制数.由于每个十六进制数位对应4个二进制,所以每读入一个十六进制位后,即可将其对应的4个二进制位依次输出。
20个简单汇编语言程序 -回复
20个简单汇编语言程序-回复在编写这篇文章之前,让我们先了解一下什么是汇编语言。
汇编语言是一种底层的计算机语言,与机器语言非常接近。
它使用特定的助记符和指令来编写计算机程序。
汇编语言程序由一系列指令组成,这些指令告诉计算机执行特定的操作。
现在,让我们来看看以下的20个简单汇编语言程序,并逐个回答它们的功能和用途。
1. [求两个数的和]这个简单的汇编语言程序用于计算并打印两个输入数字的和。
它将两个输入的数字存储在寄存器中,并使用加法指令将它们相加。
2. [判断一个数是奇数还是偶数]这个汇编语言程序通过使用位操作和逻辑运算来判断一个输入数字是奇数还是偶数,并将结果打印出来。
它使用与运算指令来检查数字的最低位。
3. [计算一个数的阶乘]这个汇编语言程序用于计算并打印一个输入数字的阶乘。
它使用循环来连续乘以该数字的前一个数字,直到计算到1。
4. [求两个数的最大公约数]这个简单的汇编语言程序用于计算两个输入数字的最大公约数,并将结果打印出来。
它使用辗转相除法来找到最大公约数。
5. [判断一个数是素数还是合数]这个汇编语言程序通过使用循环和条件判断来判断一个输入数字是素数还是合数,并将结果打印出来。
它将该数字除以从2到它的平方根的所有数字。
6. [计算一个数的平方根]这个简单的汇编语言程序用于计算并打印一个输入数字的平方根。
它使用二分法逼近来找到平方根。
7. [将一个字符串反转]这个汇编语言程序用于将输入的字符串反转,并将结果打印出来。
它使用循环和临时寄存器来交换字符串中的字符。
8. [从一个字符串中查找子串]这个汇编语言程序用于在输入的字符串中查找子串,并将结果打印出来。
它使用循环和条件判断来逐个比较字符串的字符。
9. [将一个字符串转换为大写]这个简单的汇编语言程序用于将输入的字符串转换为大写,并将结果打印出来。
它使用循环和位操作来进行字符的转换。
10. [将一个字符串转换为小写]这个汇编语言程序用于将输入的字符串转换为小写,并将结果打印出来。
常见汇编小程序大全
;1加到任意的数STACK SEGMENT STACKDB 100H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART:MOV CL,10MOV AH,01HMOV AL,0PUSH AXPRINT:MOV AH,01HINT 21HCMP AL,0DHJE SSUB AL,30HMOV DL,ALPOP AXMUL CLADD AL,DLPUSH AXJMP PRINTS:MOV DL,0AHMOV AH,02HINT 21HPOP AX ;输出回车换行MOV CL,AL ;加法器,并输出结果AND CX,00FFHMOV AX,0MOV BX,1SSS: ADD AX,BXINC BXLOOP SSSMOV CX,0XXX: MOV DX,0MOV BX,10DIV BXINC CXPUSH DXCMP AX,0JA XXXMOV AH,02HSSSS:POP DXADD DL,30HINT 21HLOOP SSSSMOV AH,4CHINT 21HCODE ENDSEND START;2 p进制bx(入口)转换STACK SEGMENT STACKDB 100H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART:MOV CL,10MOV AH,01HMOV AL,0PUSH AXPRINT:MOV AH,01HINT 21HCMP AL,0DHJE SSUB AL,30HMOV DL,ALPOP AXMUL CLADD AL,DLPUSH AXJMP PRINTS:MOV DL,0AHMOV AH,02HINT 21HMOV CX,0POP AXXXX: MOV DX,0MOV BX,7 ;进制的入口参数DIV BXINC CXPUSH DXCMP AX,0JA XXXMOV AH,02HSSSS:POP DXADD DL,30HINT 21HLOOP SSSSMOV AH,4CHINT 21HCODE ENDSEND STARTXXX: ADD AL,37HJMP XXXXQQQ: ADD AL,30HXXXX: MOV DL,ALMOV AH,02HINT 21H;3 x的n次方DATA SEGMENTX DB 80H DUP(0)Y DB 80H DUP(0)DATA ENDSSTACK SEGMENTDW 20H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATA ;该程序实现了首位是0则吧输出的功能MOV DS,AX ;局限是两个数必须是个位数MOV AH,01H ;并且输入时两个数之间没有空格检测INT 21HMOV X,AHSUB AL,30HMOV Y,ALMOV AH,01HINT 21HSUB AL,30HMOV BL,ALMOV AL,YMOV CL,YXXX: MUL CLINC XCMP BL,XJNE XXXPUSH AXMOV AH,02HMOV DL,0DHINT 21HMOV DL,0AHINT 21HPOP AXMOV CX,0XX: MOV DX,0MOV BX,10DIV BXINC CXPUSH DXCMP AX,0JA XXMOV AH,02H SSSS:POP DXADD DL,30HINT 21HLOOP SSSSMOV AH,4CHINT 21HCODE ENDSEND START;4 y与x的选择输出STACK SEGMENT STACK DW 20H DUP(0)STACK ENDSCODE SEGMENT ASSUME CS:CODE,SS:STACK START:MOV AH,01HINT 21HSUB AL,30HMOV AH,0MOV BL,ALCMP AL,3JE S1CMP AL,4JE S2CMP AL,5JE S3CMP AL,6JE S4CMP AL,3JNA S5CMP AL,7JNB S5S1:MUL BL ADD AL,BL JMP SSSS2:MUL BLSUB AL,BLSUB AL,BLJMP SSSS3:MUL BLJMP SSSS4:MUL BXMOV CL,2DIV CLJMP SSSS5:MOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHINT 21HMOV DL,65HINT 21HMOV DL,72HINT 21HMOV DL,72HINT 21HMOV DL,6FHINT 21HMOV DL,72HINT 21HJMP XX SSS:MOV CL,16DIV CLPUSH AXPUSH AXMOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HPOP AXMOV DL,ALADD DL,30HMOV AH,02HINT 21HPOP AX ;也可以movdl,ah效果一样MOV CL,8SHR AX,CLCMP AL,9JA XXXCMP AL,9JNA QQQXXX: ADD AL,37HJMP XXXXQQQ: ADD AL,30HXXXX: MOV DL,ALMOV AH,02HINT 21HXX: MOV AH,4CHINT 21HCODE ENDSEND START;5 跟踪数据段DATA SEGMENTX DB 80H DUP(0)DATA ENDSSTACK SEGMENTDW 20H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATAMOV DS,AXMOV SI,OFFSET XWW: MOV AH,01HINT 21HCMP AL,3DHJE ZZCMP AL,3AHJB YYSUB AL,37HMOV [SI],ALINC SIJMP WWYY: SUB AL,30HMOV [SI],ALINC SIJMP WWZZ: DEC SI ;这是要注意的MOV AH,[SI]DEC SIMOV AH,[SI]MOV AH,4CHINT 21HCODE ENDSEND START;6九九乘法表STACK SEGMENTDW 30H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODESTART:MOV CX,101HJMP WWQQ: INC CLMOV DL,20H ;输出空格MOV AH,02HINT 21HWW: MOV DL,CHADD DL,30HMOV AH,02HINT 21HMOV DL,2AHINT 21HMOV DL,CLADD DL,30HINT 21HMOV DL,3DHINT 21HMOV AL,CHMOV BL,CLMOV AH,0MOV BL,0AHDIV BLPUSH AXMOV DL,ALADD DL,30HCMP DL,30HJE KKKMOV AH,02HINT 21HJMP RRKKK: MOV DL,20H ;乘之后结果首位是0 MOV AH,02HINT 21HRR: POP AXMOV DL,AHADD DL,30HMOV AH,02HINT 21HCMP CH,CLJA QQMOV AH,02H ;回车换行MOV DL,0DHINT 21HMOV DL,0AHINT 21HCMP CH,9JE EEINC CHMOV CL,1JMP WWEE: CODE ENDSEND START;7 逆向输出DATA SEGMENTX DB 80H DUP(0)DATA ENDSSTACK SEGMENTDW 80H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATAMOV BX,OFFSET X XXX: MOV AH,01HINT 21HCMP AL,0DHJE QQQMOV [BX],ALINC BXJMP XXXQQQ: MOV AH,02HMOV DL,0AHINT 21HQQ: DEC BXMOV DL,[BX]MOV AH,02HINT 21HMOV CX,BXINC CXCMP CX,OFFSET XJNE QQMOV AX,4C00HINT 21HCODE ENDSEND START;8 去掉空格并反向输出DATA SEGMENTX DB 80H DUP(0)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AXMOV BX,OFFSET X XXX: MOV AH,01HINT 21HCMP AL,0DHJE QQQMOV [BX],ALINC BXJMP XXXQQQ: MOV AH,02HMOV DL,0AHINT 21HQQ: DEC BXJE QQMOV DL,[BX]MOV AH,02HINT 21HMOV CX,BXCMP CX,OFFSET XJNE QQMOV AX,4C00HINT 21HCODE ENDSEND START;9四位二进制数转换为压缩的bcd码DATA SEGMENTX DB 80H DUP(0)DATA ENDSSTACK SEGMENTDW 20H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATAMOV DS,AXMOV CX,4MOV BX,OFFSET XXX: MOV AH,01HINT 21HCMP AL,3AHJB XXXSUB AL,37HJMP QQXXX: SUB AL,30HQQ: MOV [BX],ALINC BXLOOP XXMOV AH,02HMOV DL,0DHINT 21HMOV DL,0AHINT 21HMOV CX,4MOV BX,OFFSET XQQQ: MOV AL,[BX]MOV DH,8XOR AH,AHDIV DHPUSH AXADD AL,30HMOV DL,ALMOV AH,02HINT 21HPOP AXMOV AL,AHMOV DH,4XOR AH,AHDIV DHPUSH AXADD AL,30HMOV DL,ALMOV AH,02HINT 21HPOP AXMOV AL,AHMOV DH,2XOR AH,AHDIV DHPUSH AXADD AL,30HMOV DL,ALMOV AH,02HINT 21HPOP AXADD AH,30HMOV DL,AHMOV AH,02HINT 21HINC BXLOOP QQQMOV AH,4CHINT 21HCODE ENDSEND START ;10 星星输出DATA SEGMENTX DB 80H DUP(0) DATA ENDS STACK SEGMENT DW 20H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START:MOV AX,DATAMOV DS,AXMOV AH,01HINT 21HINC ALSUB AL,30HMOV BL,ALMOV BH,ALMOV AH,0MOV CX,AXMOV DH,1PUSH AXMOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHINT 21HDEC CLMOV X,CLXX: MOV DL,20H ;定义两个段xx和qq是两种运算,不过在第一层循环里MOV AH,02HINT 21HLOOP XXQQ: MOV DL,2AHINT 21HMOV CL,XJMP BBAA: MOV DL,2AHINT 21HBB: INC CLCMP BL,CLJE SSSSINC CLMOV DL,20HMOV AH,02HINT 21HJMP AASSSS: INC BLMOV AH,02HMOV DL,0DHINT 21HMOV DL,0AHINT 21HINC DHDEC XMOV CL,XCMP BH,DHJE QQQCMP BH,DHJNE XXQQQ: MOV AX,4C00HINT 21HCODE ENDSEND START;11 字符串的比较DATA SEGMENTX DB 50H DUP(0)Y DB 50H DUP(0)Z DB 'CHAR1>CHAR2'A DB 'CHAR1<CHAR2'B DB 'CHAR1=CHAR2' DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV CX,0MOV BX,OFFSET X XXX: MOV AH,01HINT 21HCMP AL,0DHJE QQQMOV [BX],ALINC BXINC CHJMP XXXQQQ: MOV AH,02HMOV DL,0AHINT 21HMOV SI,OFFSET Y QQ: MOV AH,01HINT 21HCMP AL,0DHJE WWWMOV [SI],ALINC SIINC CLJMP QQWWW: MOV AH,02HMOV DL,0AHINT 21HCMP CH,CLJA AACMP CH,CLJB BBMOV BX,OFFSET XMOV SI,OFFSET YMOV DL,CHSSS: CMP DL,0 ;两个数的长度要是一样,则每一项进行比较,从高位首项开始JE CCDEC DLMOV CH,[BX]MOV CL,[SI]CMP CH,CLJA AACMP CH,CLJB BBINC BXINC SIJMP SSSAA: LEA DI,ZA1: CMP DH,11JE ZZMOV DL,[DI]MOV AH,2INT 21HINC DHINC DIJMP A1BB: LEA DI,AB1: CMP DH,11JE ZZMOV DL,[DI]MOV AH,2INT 21HINC DHINC DIJMP B1CC: LEA DI,BC1: CMP DH,11JE ZZMOV DL,[DI]MOV AH,2INT 21HINC DHINC DIJMP C1ZZ: MOV AH,4CHINT 21HCODE ENDSEND START;12两个循环实现向量相乘DATA SEGMENTVA DB 1,3,5,7,9VB DB 2,4,6,8,10COUNT EQU $-VBRESULT DB COUNT*COUNT DUP(0)DATA ENDSSTACK SEGMENT PARA STACKDW 40H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXLEA SI,VALEA DI,VBLEA BP,RESULTPUSH BPMOV CX,COUNTLOP1: PUSH CXPUSH DIMOV CX,COUNTMOV AL,[SI]MOV AH,0LOP2: PUSH AXMUL BYTE PTR [DI]MOV [BP],AXPOP AXADD BP,1INC DILOOP LOP2POP DIPOP CXINC SIMOV CX,25POP BPLOP3: MOV AX,[BP]MOV BL,0AHMOV AH,0DIV BLPUSH AXMOV DL,ALADD DL,30HCMP DL,30HJE KKKMOV AH,02HINT 21HJMP RRKKK: MOV DL,20H ;乘之后结果首位是0MOV AH,02HINT 21HRR: POP AXMOV DL,AHADD DL,30HMOV AH,02HINT 21HMOV DL,20HINT 21HADD BP,1LOOP LOP3MOV AH,4CHINT 21HCODE ENDSEND START;13求阶乘DATA SEGMENTRES DW ?DATA ENDSSTACK1 SEGMENT PARA STACKDW 20H DUP(0) ;8的阶乘就不行了,寄存器的位数有限STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START:MOV AX,DATAMOV DS,AXCALL STDINMOV AH,0MOV AH,02H ; 回车换行MOV DL,0DHINT 21HMOV DL,0AHINT 21HPOP AXMOV BX,1CALL FACTMOV RES,BXMOV AX,BX ;想让它输出MOV CX,0XXX: MOV DX,0MOV BX,10DIV BXINC CXPUSH DXCMP AX,0JA XXXMOV AH,02HSSS:POP DXADD DL,30HINT 21HLOOP SSSMOV AH,4CHINT 21HSTDIN PROCMOV AH,1INT 21HCMP AL,30HJL STDINCMP AL,37HJG STDINAND AL,0FHRETSTDIN ENDPFACT PROCCMP AX,0JG NEXT1MOV BX,1RETNEXT1:CMP AX,1JG NEXT2RETNEXT2:PUSH AXMUL BXMOV BX,AXPOP AXDEC AXCMP AL,1JA NEXT2RETFACT ENDPCODE ENDSEND START;14 十进制多字节加法器DATA SEGMENTX DB 20H DUP(0)Y DB 20H DUP(0)Z DB 20H DUP(0)DATA ENDSSTACK SEGMENTDW 20H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV CX,0MOV BP,OFFSET XMOV SI,OFFSET YMOV DI,OFFSET ZXX: MOV AH,01HINT 21HCMP AL,2BH ;是加号就跳JE WWSUB AL,30HMOV [BP],ALINC BPINC CHJMP XXWW: MOV AH,01HINT 21HCMP AL,3DH ;是等于号就跳JE AASUB AL,30HMOV [SI],ALINC SIINC CLJMP WWAA: CMP CL,CHJB DDMOV DL,CLMOV DH,CLJMP MM ;取较长的数的长度用来比较DD: MOV DL,CHMOV DH,CHMM: CMP DL,0JE KKDEC SIDEC BPMOV AL,[BP]MOV AH,[SI]ADD AL,AHMOV [DI],ALDEC DLINC DIJMP MMKK: PUSH DXMOV DI,OFFSET Z ;DI重新指向最低位,既段首RR: CMP DH,0 ;核心,与16的比较,小于16的不管,全部比较一遍。
20个简单汇编语言程序
20个简单汇编语言程序(实用版)目录1.汇编语言简介2.20 个简单汇编程序列表3.程序 1:Hello World4.程序 2:计算两个数之和5.程序 3:计算两个数之差6.程序 4:计算两个数之积7.程序 5:计算两个数相除8.程序 6:从键盘输入数据9.程序 7:输出九九乘法表10.程序 8:判断一个数是否为素数11.程序 9:判断一个数是否为回文字符串12.程序 10:模拟交通信号灯13.程序 11:计算斐波那契数列14.程序 12:模拟弹球游戏15.程序 13:实现简易计算器功能16.程序 14:实现日历功能17.程序 15:实现简单文本编辑器功能18.程序 16:实现文件压缩与解压缩功能19.程序 17:实现密码加密与解密功能20.程序 18:实现简单聊天机器人功能21.程序 19:实现贪吃蛇游戏功能22.程序 20:实现俄罗斯方块游戏功能正文汇编语言是一种低级编程语言,它与计算机硬件的操作紧密相关。
汇编语言直接使用计算机处理器的指令集,因此可以实现对硬件的精确控制。
这种语言的优势在于它能够产生高效的代码,特别是在处理系统调用和硬件操作时。
然而,它的缺点是编写难度较大,需要对计算机硬件和汇编指令有深入的了解。
下面,我们将介绍 20 个简单的汇编程序,这些程序涵盖了日常生活和计算机科学中的一些基本操作。
1.程序 1:Hello World这个程序非常简单,它将在屏幕上显示“Hello World”。
2.程序 2:计算两个数之和这个程序将接收两个数字作为输入,并在屏幕上显示它们的和。
3.程序 3:计算两个数之差这个程序将接收两个数字作为输入,并在屏幕上显示它们的差。
4.程序 4:计算两个数之积这个程序将接收两个数字作为输入,并在屏幕上显示它们的积。
5.程序 5:计算两个数相除这个程序将接收两个数字作为输入,并在屏幕上显示它们的商。
6.程序 6:从键盘输入数据这个程序将接收从键盘输入的数据,并在屏幕上显示。
python小程序200例
python小程序200例Python小程序200例是一本关于Python编程语言的实用指南,用于帮助初学者和有经验的开发人员快速学习和掌握Python编程知识。
本文将提供一些Python小程序的相关参考内容,以帮助读者更好地理解和应用这些例子。
1. 计算两个数的和```num1 = 5num2 = 10sum = num1 + num2print("The sum of", num1, "and", num2, "is", sum)```2. 计算两个数的乘积```num1 = 5num2 = 10product = num1 * num2print("The product of", num1, "and", num2, "is", product)```3. 判断一个数是否为偶数```num = 6if num % 2 == 0:print(num, "is an even number")else:print(num, "is not an even number")```4. 判断一个数是否为质数```num = 7if num > 1:for i in range(2, num):if (num % i) == 0:print(num, "is not a prime number")breakelse:print(num, "is a prime number")else:print(num, "is not a prime number")```5. 计算一个正整数的阶乘```num = 5factorial = 1if num < 0:print("Factorial does not exist for negative numbers") elif num == 0:print("The factorial of 0 is 1")else:for i in range(1, num + 1):factorial = factorial * iprint("The factorial of", num, "is", factorial)```这些例子涵盖了Python编程中的一些常见应用场景,包括数学运算、条件判断和循环控制等。
汇编语言_24个汇编实例小程序
24个汇编小程序题目列表:逆序输出字符串“BASED ADDRESSING”从键盘上输入两个数,分别放到x,y单元,求出它们的和是编写一段程序,要求在长度为10h的数组中,找出大于42h的无符号数的个数并存入地址为up开始区域,找出小于42h的无符号数的个数并存入地址为down的开始区域键盘输入一段字符串,其中小写字母以大写字母输出,其他字符不变输出从键盘上就收一个小写字母,找出它的前导字符和后续字符,在顺序显示这三个字符把一个包含20个数据的数组M分成两组:正整数组P和负整数组N,分别把这两个数组中的数据的个数显示出来求出首地址为data的100个字数组中的最小偶数,并把它放在ax中输入两船字符串string1和string2,并比较两个字符串是否相等,相等就显示“match”,否则显示“no match”从键盘接收一个四位的十六进制数,并在终端显示与它等值的二进制数从键盘输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示计数结果有一个首地址为mem的100个字的数组,试编程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零从键盘上输入一串字符(用回车键结束,使用10号功能调用)放在string中,是编制一个程序测试字符串中是否存在数字。
如有,则把cl的第五位置1,否则将该位置置0在首地址为data的字数组中,存放了100h的16位字数据,试编写一个程序,求出平均值放在ax寄存器中,并求出数组中有多少个数小于此平均值,将结果放在bx寄存器中(f分别考虑有符号数、无符号数情况)一直数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。
试编制一个程序,把既在A中又在B中出现的整数存放于数组C中设在A、B和D单元中分别存放着三个数。
若三个数都不是0,则求出三个数的和并存放在S单元,若其中有一个数为0,则把其它两个单元也清零。
请编写此程序从键盘输入一系列字符(以回车键结束),并按字母、数字和其他字符分类计数,最后显示这三类的计数结果已定义两个整数变量A和B,试编写程序完成以下功能(1)若两个树种有一个是奇数,则将奇数存入A中,偶数存入B中(2)若两个数均为奇数,则将两个数加1后存回原变量(3)若两个数均为偶数,则两个变量均不变写一段子程序skiplines,完成输出空行的功能。
单片机汇编小程序
P1口接8个灯,点亮P1.0ORG 0000HSJMP MAINORG 0030HMAIN:CLR P1.0 /* MOV A,#0FE MOV P1,A*/END/* Eg2:点亮全部小灯ORG 0000HSJMP MAINORG 0030HMAIN:CLR AMOV P1,AEND *//*EG3:点亮小灯,再熄灭小灯ORG 0000HSJMP MAINORG 0030HMAIN: CLR A MOV A,#00HMOV P1,A MOV P1,ACPL A MOV A,#0FFHMOV P1,A MOV P1,AENDEg4:闪烁小灯(点亮小灯,再熄灭小灯)10次ORG 0000HSJMP MAINORG 0030HMAIN: MOV R7,#10LOOP:CLR A MOV A,#00HMOV P1,A MOV P1,ACPL A MOV A,#0FFHMOV P1,A MOV P1,ADJNZ R7,LOOPEND *//*EG3:点亮小灯,再熄灭小灯ORG 0000HSJMP MAINORG 0030HMAIN: CLR A MOV A,#00HMOV P1,A MOV P1,ACPL A MOV A,#0FFHMOV P1,A MOV P1,AENDEg4:闪烁小灯(点亮小灯,再熄灭小灯)10次ORG 0000HSJMP MAINORG 0030HMAIN: MOV R7,#10LOOP:CLR A MOV A,#00HMOV P1,A MOV P1,ACPL A MOV A,#0FFHMOV P1,A MOV P1,ADJNZ R7,LOOPEND*/定时器1工作方式2控制8个灯间隔50ms流水点亮ORG 0HAJMP MAINORG 001BH /*定时器T1入口地址*//*000B定时器T0入口地址*/AJMP T1_SUBMAIN: MOV TMOD, #10H /*设置定时器T1工作方式2*//*#02H设置定时器T0工作方式2*/MOV TH1, #3CH /*设置定时初值3CB0是50ms,B1E0是20ms*/MOV TL1,#0B0HMOV IE,#88H /*等价于开总中断和定时器1中断允许即SETB EA 和SETB ET1*/ /*#82H开总中断和定时器0中断允许*/SETB TR1 /*定时器1开中断*//*TR0定时器T0开中断*/MOV R4,#10MOV A,#0FEH /*设置小灯的初始状态*//*根据题目给定状态输入相应数值*/MOV P1,A /*输入小灯的初始状态给P1口,点亮P1.0*//*可以输入给P0 P2 P3*/SJMP $ORG 0100HT1_SUB: MOV TL1,#0B0HMOV TH1,#3CHDJNZ R4,T1_ENDMOV R4,#10RL A /*左移一位点亮*//*也可以右移*/MOV P1,AT1_END: RETIEND闪烁15次间隔1sORG 0000HSJMP MAINORG 0030HMAIN: MOV R4,#15 /*闪烁的次数*/LOOP: CLR A /*;MOV A,#00H*/MOV P1,A /*;MOV P1,A 8*/ACALL DELAYCPL A /*; MOV A,#0FFH*/MOV P1,A /*; MOV P1,A*/ /*p1口输出*/ACALL DELAYDJNZ R4,LOOPDELAY: MOV R5,#10 /*延时一秒即闪烁间隔*/ L2: MOV R6,#125L1: MOV R7,#200DJNZ R7,$ /*;200*125*10*2=100000us*/DJNZ R6,L1DJNZ R5,L2RETEND四个拨动开关外加一个中断控制8个小灯ORG 0000HSJMP MAINORG 13HSJMP LAMPORG 0030HMAIN: S ETB EASETB EX1SETB IT1SJMP $ORG 0050HLAMP: MOV P1,#0FFHMOV A,P1SWAP AMOV P1,ARETIEND外部中断1低电平触发方式初始化程序ORG 0000HAJMP MAINORG 0013HAJMP PINT1ORG 0100HMAIN: SETB EX1SETB EAHERE: AJMP HEREPINT1: RETIEND外部中断1下降沿P2口控制8个灯4L4M转换ORG 0000H //*外部中断0下降沿触发*/AJMP MAINORG 0013H /*外部中断1入口地址*/ /*0003h*/AJMP PINT1ORG 0100HMAIN: SETB EX1 /*外部中断1开中断*/ /*EX0*/SETB EA /*开总中断*/SETB IT1 /*外部中断1设置下降沿触发*/ /*IT0*/ /*CLR IT1 外部中断1电平触发或CLR IT0外部中断0电平触发*/MOV A,#0FH /*设置灯的初始状态,4亮4灭*/MOV P2,A /*输入小灯状态给P2口,也可以给P0 P1 P3*/ HERE: AJMP HEREPINT1: CPL A /*SWAP A 变换小灯状态,4灭4亮*/MOV P2,ARETIEND闪烁10次间隔0.5sORG 0000HSJMP MAINORG 0030HMAIN: M OV R7,#10LOOP: CLR A /* MOV A,#00H */MOV P1,A /* MOV P1,A*/ACALL DELAYCPL A /*MOV A,#0FFH*/MOV P1,A /*MOV P1,A*/ACALL DELAYDJNZ R7,LOOPDELAY: MOV R5,#5L2: MOV R6,#250L1: MOV R4,#200 ;250*400=100000DJNZ R4,$ ;200*2=400USDJNZ R6,L1DJNZ R5,L2RETEND延时10毫秒DELAY:MOV R6,#100L1: MOV R7,#50DJNZ R7,DELAY ;50*2DJNZ R6,L1RETEND。
创意编程小程序实例
创意编程小程序实例随着科技的发展,编程已经成为一种必备的技能。
编程不仅可以帮助我们解决问题,还可以开发各种有趣的小程序。
本文将为大家介绍几个创意的编程小程序实例,希望能够激发大家对编程的兴趣。
1. 闹钟小程序这个小程序可以帮助我们设置闹钟,并在设定的时间到达时发出提醒。
相比于普通的闹钟,这个小程序还可以根据不同的时间段播放不同的音乐,让我们在每天的早晨都能以美妙的音乐开始新的一天。
2. 健康小程序这个小程序可以帮助我们记录每天的运动情况,并根据我们的身体指标提供合适的健康建议。
它还可以设置定时提醒我们休息,并提供一些简单的健身操视频,让我们在工作学习之余也能保持身体健康。
3. 美食小程序这个小程序可以根据我们的口味和食材,为我们提供各种美食的菜谱。
它还可以根据我们的喜好推荐一些新的菜品,让我们在烹饪的过程中充满乐趣。
4. 旅行小程序这个小程序可以帮助我们规划旅行路线,并提供各种旅游景点的介绍和推荐。
它还可以根据我们的出行时间和预算,为我们提供合适的旅行方案,并帮助我们预订机票和酒店。
5. 学习小程序这个小程序可以帮助我们制定学习计划,并提供各种学习资源和学习方法。
它还可以根据我们的学习情况进行智能推荐,帮助我们更高效地学习。
以上只是几个创意编程小程序实例的简单介绍,实际上,编程的可能性是无限的。
通过编程,我们可以开发出各种有趣的小程序,满足我们的各种需求。
编程不仅可以培养我们的逻辑思维和问题解决能力,还可以帮助我们创造出有趣的东西。
通过编程,我们可以将自己的创意变成现实,让我们的生活更加便捷和有趣。
如果你对编程感兴趣,不妨尝试学习一些编程语言,如Python、Java等。
通过学习编程,你将能够掌握一种强大的工具,为自己的创意找到最好的表达方式。
创意编程小程序是一种有趣而有意义的创作方式。
通过编程,我们可以创造出各种有趣实用的小程序,满足我们的各种需求。
希望本文能够给大家带来一些灵感,激发大家对编程的兴趣和创造力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
24个汇编小程序题目列表:逆序输出字符串“BASED ADDRESSING”从键盘上输入两个数,分别放到x,y单元,求出它们的和试编写一段程序,要求在长度为10h的数组中,找出大于42h的无符号数的个数并存入地址为up开始区域,找出小于42h的无符号数的个数并存入地址为down的开始区域键盘输入一段字符串,其中小写字母以大写字母输出,其他字符不变输出从键盘上就收一个小写字母,找出它的前导字符和后续字符,在顺序显示这三个字符把一个包含20个数据的数组M分成两组:正整数组P和负整数组N,分别把这两个数组中的数据的个数显示出来求出首地址为data的100个字数组中的最小偶数,并把它放在ax中输入两船字符串string1和string2,并比较两个字符串是否相等,相等就显示“match”,否则显示“no match”从键盘接收一个四位的十六进制数,并在终端显示与它等值的二进制数从键盘输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示计数结果有一个首地址为mem的100个字的数组,试编程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零从键盘上输入一串字符(用回车键结束,使用10号功能调用)放在string中,是编制一个程序测试字符串中是否存在数字。
如有,则把cl的第五位置1,否则将该位置置0在首地址为data的字数组中,存放了100h的16位字数据,试编写一个程序,求出平均值放在ax寄存器中,并求出数组中有多少个数小于此平均值,将结果放在bx寄存器中(f分别考虑有符号数、无符号数情况)一直数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。
试编制一个程序,把既在A中又在B中出现的整数存放于数组C中设在A、B和D单元中分别存放着三个数。
若三个数都不是0,则求出三个数的和并存放在S 单元,若其中有一个数为0,则把其它两个单元也清零。
请编写此程序从键盘输入一系列字符(以回车键结束),并按字母、数字和其他字符分类计数,最后显示这三类的计数结果已定义两个整数变量A和B,试编写程序完成以下功能(1)若两个树种有一个是奇数,则将奇数存入A中,偶数存入B中(2)若两个数均为奇数,则将两个数加1后存回原变量(3)若两个数均为偶数,则两个变量均不变写一段子程序skiplines,完成输出空行的功能。
空行的行数由用户在主程序过键盘输入,并将行数放在ax寄存器中设有10个学生成绩分别是76, 69,84,73,88,99,63,100和80。
试编写一个子程序统计60-69分,70-79分,80-89分,90-99分和100分的人数,并分别放到S6,S7,S8,S9,S10单元中编写子程序嵌套结构的程序,把整数分别用二进制和八进制显示出来在D盘根目录建立一个文件,第一次向文件写入“123456”六个字符,第二次增加“abcdefg”几个字符从键盘上输入文本文件:“d:\”的容后,然后新建一个文件“d:\”,把前一个文件的所有容复制到后一个文件中从键盘上输入一个十进制数,以十六进制数显示出来。
要求子程序用寄存器参数传送方法试编制一个程序,把bx寄存器中的二进制数用十六进制数的形式在屏幕上显示出来代码:1.逆序输出字符串“BASED ADDRESSING”s1 segment stack ;定义栈段s1dw 100 dup() ;定义栈空间为100top label word ;top指向栈顶s1 endss2 segment ;定义数据段s2s db 'BASED ADDRESSING','$' ;定义字符串sS2 endss3 segment ;定义代码段s3assume cs:s3,ds:s2,ss:s1main proc farmov ax,s1 ;栈初始化——mov ss,axlea sp,top ;——栈初始化mov ax,s2 ;数据段初始化——mov ds,ax ;——数据段初始化mov si,15l: mov dl,s[si] ;dl获取字符串s的最后一个(从零开始的第十五个字符) mov ah,2 ;调用int 21h 2号功能输出dl上的值int 21hdec si ;寄存器减一,准备获取下一个字符cmp si,0ja lmov ah,4ch ;终止int 21hmain endps3 endsend main2.从键盘上输入两个数,分别放到x,y单元,求出它们的和s1 segment stackdw 100h dup()top label words1 endss2 segmenth1 db 'Please input x:','$' ;提示输入h2 db 'Please input y:','$' ;提示输入h3 db 'z=x+y:','$' ;提示输出crlf db 0dh,0ah,24h ;定义回车换行x dwy dws2 endss3 segmentassume cs:s3,ds:s2,ss:s3main proc farmov ax,s1 ;初始化——mov ss,axlea sp,topmov ax,s2mov ds,ax ;——初始化lea dx,h1 ;int 21h 9号功能输出“提示输入x”的字符串mov ah,9int 21hxor bx,bx ;bx清零,即把bx置零InputX:mov ah,1 ;输入一个字符int 21hcmp al,0dh ;判断时候为“回车”字符jz exit1 ;如果是回车字符就跳转到exit1cmp al,30h ;和30h(即字符0的asii值)比较jl exit1 ;如果输入字符小于'0',跳转到exit1cmp al,39h ;和39h(即字符9的ascii值)比较jg exit1 ;如果输入字符大于'9',跳转到exit1sub al,30h ;al减去30h,输入字符转化成数字(从这一行开始到后面的add bx,ax为输入字符转化为数字的处理方法)cbw ;al扩充为axxchg ax,bxmov cx,10mul cxxchg ax,bxadd bx,ax ;sub al,30h开始到这一行为输入字符转化为数字的处理方法jmp InputXexit1: mov x,bx ;把输入的存于bx的放到x中lea dx,crlfmov ah,9int 21hlea dx,h2mov ah,9int 21hxor bx,bxInputY: ;和InputX类似,输入ymov ah,1int 21hcmp al,0dhjz exit2cmp al,30hjl exit2cmp al,39hjg exit2sub al,30hcbwxchg ax,bxmov cx,10mul cxxchg ax,bxadd bx,axjmp InputYexit2: mov y,bx ;把输入的存于bx的放到y中mov bx,xadd bx,y ;此时bx为两数加和lea dx,crlfmov ah,9int 21Hlea dx,h3mov ah,9int 21hxor si,si ;si清零,用作计数mov ax,bx ;把和放到ax上l4: mov cl,10 ;把和连续除以10知道和变为零,余数依次进栈 div clmov dl,ahmov dh,0push dxinc simov ah,0 ;重要,不能漏写cmp al,0jnz l4l5: pop dx ;余数依次出栈add dl,30h ;余数转换为显示的余数字符mov ah,2 ;输入余数字符int 21hdec sicmp si,0jnz l5mov ah,4chmain endps3 endsend main3.是编写一段程序,要求在长度为10的数组中,找出大于42h的无符号数的个数并存入地址为up开始区域,找出小于42h的无符号数的个数并存入地址为down的开始区域,并分别显示up、down数组的个数和数组的数字s1 segment stackdw 100h dup()top label words1 endss2 segmenth1 db 'the num of up array and the up array are(prints in decimalism) :','$' h2 db 'the num of down array and the down array are(prints in decimalism) :','$' crlf db 0dh,0ah,24harray db 0,50h,11h,61h,22h,72h,33h,73h,41h,74h,'$' ;定义数组arrayup db 10 dup() ;定义up数组down db 10 dup() ;定义down数组s2 endss3 segmentassume cs:s3,ds:s2,ss:s3main proc farmov ax,s1mov ss,axlea sp,topmov ax,s2mov ds,axmov si,0mov di,1mov bp,1repeat: cmp array[si],42h ;把array数组中小于42h的值放到down数组里,大于42h的值放到up数组里面jb downarraymov dl,array[si]mov up[bp],dlinc sicmp si,10inc bpjmp repeatdownarray:mov dl,array[si]mov down[di],dlinc sicmp si,10jz exit2inc dijmp repeatexit1: sub di,1jmp exitexit2: sub bp,1exit: mov dx,bp ;把分配好的up数组和down数组在其有效数字后面添加'$',便于后面的输出结束mov up[0],dlinc bpmov up[bp],'$'mov dx,dimov down[0],dlinc dimov down[di],'$'mov cl,10mov si,0lea dx,h1mov ah,9int 21hPrintUparray:cmp up[si],'$'jz nextmov al,up[si]call printinc sijmp PrintUparraynext:lea dx,crlfmov ah,9int 21hlea dx,h2int 21hxor si,siPrintDownArray:cmp down[si],'$'jz atendmov al,down[si]call printinc sijmp PrintDownArrayprint proc near ;print为输出十进制输出某个数的子程序 mov di,0rediv: mov ah,0div clmov dl,ahmov dh,0push dxinc dicmp al,0jnz redivbreak: pop dxadd dl,30hmov ah,2int 21hdec dicmp di,0jnz breakmov dl,' 'mov ah,2int 21Hretprint endpatend: mov ah,4chint 21Hmain endps3 endsend main4.键盘输入一段字符串,其中小写字母以大写字母输出,其他字符不变输出s1 segment stackdw 100h dup()top label words1 endss2 segmenth1 db 'Please input a string:','$'h2 db 'The changed string is:','$'crlf db 0dh,0ah,24htemp dbs2 endss3 segmentassume cs:s3,ds:s2,ss:s3main proc farmov ax,s1mov ss,axlea sp,topmov ax,s2mov ds,axlea dx,h1mov ah,9int 21hmov si,0l: mov ah,1int 21hcmp al,0dhjz exitcmp al,'a'jl putincmp al,'z'jg putinsub al,20h ;把小写字符变为大写字符putin: mov temp[si],al ;把字符放到temp数组里inc sijmp lexit: lea dx,crlf ;输出tmp数组mov ah,9int 21hlea dx,h2mov ah,9int 21hinc simov temp[si],'$'lea dx,tempmov ah,9int 21hmov ah,4chint 21Hmain endps3 endsend main5.从键盘上就收一个小写字母,找出它的前导字符和后续字符,在顺序显示这三个字符s1 segment stackdw 100h dup()top label words1 endss2 segmenth1 db 'Please input a lowercase: ','$'h2 db 'The the three chars are: ','$'crlf db 0dh,0ah,24hs2 endss3 segmentassume cs:s3,ds:s2,ss:s3main proc farmov ax,s1mov ss,axlea sp,topmov ax,s2mov ds,axl: lea dx,h1mov ah,9int 21hmov ah,1int 21hcmp al,'a'jl lcmp al,'z'jg lmov cl,allea dx,crlfmov ah,9int 21Hlea dx,h2mov ah,9int 21hdec clmov dl,cl ;输出前导字符 mov ah,2int 21hmov dl,' 'mov ah,2int 21hinc clmov dl,cl ;输出该字符mov ah,2int 21hmov dl,' 'mov ah,2int 21hinc clmov dl,cl ;输出后导字符 mov ah,2int 21hmov ah,4chint 21Hmain endps3 endsend main6.把一个包含20个数据的数组M分成两组:正整数组P和负整数组N,分别把这两个数组中的数据的个数显示出来s1 segment stackdw 100h dup()top label words1 endss2 segmenth1 db 'the positive number is: ','$'h2 db 'the negative number is: ','$'crlf db 0dh,0ah,24harray dw 50h,-11h,61h,-22h,72h,-33h,73h,-41h,74h,21h,67h,-90h,73h,77h,-1h,-89h,-11h,61h,-22h,20h,'$'s2 endss3 segmentassume cs:s3,ds:s2,ss:s3main proc farmov ax,s1mov ss,axlea sp,topmov ax,s2mov ds,axmov bx,0mov si,0l: mov dx,array[si]cmp dx,0jl addlow ;有符号数比较用jladd si,2cmp si,40jz exitjmp laddlow: inc bxadd si,2cmp si,40jz exitjmp lmov ah,9int 21hmov ax,bxcall printlea dx,crlfmov ah,9int 21hlea dx,h1mov ah,9int 21hmov ax,20sub ax,bxcall printjmp atendprint proc near ;打印数字字符的子程序mov cl,10mov si,0repeat: div clmov dl,ahadd dl,30hmov dh,0push dxinc simov ah,0cmp al,0jnz repeatl2: pop dxmov ah,2int 21hdec sicmp si,0jnz l2retprint endpint 21Hmain endps3 endsend main7.打印输出首地址为data的20个字数组中的最小偶数s1 segment stackdw 100h dup()top label words1 endss2 segmenth1 db 'the min even number is: ','$'crlf db 0dh,0ah,24hdata dw 50,-11,61,-22,72,-33,73,-41,74,21,67,-90,73,77,-1,-89,-11,61,-22,20,'$'s2 endss3 segmentassume cs:s3,ds:s2,ss:s1main proc farmov ax,s1mov ss,axlea sp,topmov ax,s2mov ds,axmov bx,65534 ;bx存最小数,初始令最小值置为65534mov si,0mov cl,100mov dl,2l2: mov ax,data[si]cmp ax,0jnl l4neg ax ;如果是负数,则求补l4: div clmov al,ahmov ah,0div dlcmp ah,0jnz l1cmp bx,data[si] ;比较最小值和数组中的每个数jl l1 ;如果数组中的数大于最小值跳转到l1mov bx,data[si] ;如果数组中的数小于最小值则将其赋给最小值l1: add si,2cmp si,40jz exitjmp l2exit: lea dx,h1mov ah,9int 21hcmp bx,0jnl l5neg bxmov dl,'-'mov ah,2int 21hl5: mov ax,bxcall print ;调用子程序输出最小值jmp atendprint proc nearmov cl,10mov si,0repeat: div clmov dl,ahadd dl,30hmov dh,0push dxinc simov ah,0cmp al,0jnz repeatl3: pop dxmov ah,2int 21hdec sicmp si,0jnz l3retprint endpatend: mov ah,4chint 21Hmain endps3 endsend main8.输入两船字符串string1和string2,并比较两个字符串是否相等,相等就显示“match”,否则显示“no match”s1 segment stackdw 100h dup()top label words1 endss2 segmenth1 db 'Please input the first string: ','$'h2 db 'Please input the second string: ','$'h3 db 'MATCH','$'h4 db 'NO MATCH','$'crlf db 0dh,0ah,24hstr1 db 50,,50 dup('$')str2 db 50,,50 dup('$')s2 endss3 segmentassume cs:s3,ds:s2,ss:s3main proc farmov ax,s1mov ss,axlea sp,topmov ax,s2mov ds,axlea dx,h1mov ah,9int 21hlea dx,str1mov ah,0ahint 21hlea dx,crlfmov ah,9int 21hlea dx,h2int 21hlea dx,str2mov ah,0ahint 21hlea dx,crlfmov ah,9int 21hmov dl,str1+1 ;str1+1为str1实际的字符个数 cmp dl,str2+1 ;str2+1为str2实际的字符个数 jnz lmov si,2l2: mov dl,str1[si]cmp dl,str2[si]jnz linc sicmp si,50jz l3jmp l2l: lea dx,h4 ;输出不匹配信息mov ah,9int 21hl3: lea dx,h3 ;输出匹配信息mov ah,9int 21hmov ah,4chint 21Hmain endps3 endsend main9.从键盘接收一个四位的十六进制数,并在终端显示与它等值的二进制数s1 segment stackdw 100h dup()top label words1 endss2 segmenth1 db 'Please input a hexadecimal number: ','$'h2 db 'The number is printed in binary number: ','$' temp db 17 dup('$')crlf db 0dh,0ah,24hs2 endss3 segmentassume cs:s3,ds:s2,ss:s3main proc farmov ax,s1mov ss,axlea sp,topmov ax,s2mov ds,axrepeat: lea dx,h1mov ah,9int 21hmov bx,0mov cx,4newchar: ;接收新字符mov ah,1int 21hcmp al,30hjb repeatcmp al,46hjg repeatcmp al,39hjnb l1 ;如果输入字符大于9跳到l1sub al,30hjmp l2l1: cmp al,41hjb repeat ;如果输入字符小于A,则输入错误,跳到repeat sub al,37h ;输入字符为A~Z,故相应地要减37hjmp l2l2: cbw ;l2为把输入字符转化为数值xchg ax,bxmov dx,10hmul dxxchg ax,bxadd bx,ax;loop newchardec cxcmp cx,0jnz newcharlea dx,crlfmov ah,9int 21hlea dx,h2int 21hmov si,0mov cx,10h ;cx作计数器,即待会要循环16次l5: rol bx,1 ;bx循环左移以为,最高位进标志位jc l3 ;若标志位为1则跳转到l3mov temp[si],'0'jmp l4l3: mov temp[si],'1'l4: inc siloop l5lea dx,tempmov ah,9int 21hmov ah,4chint 21Hmain endps3 endsend main10从键盘输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示计数结果s1 segment stackdw 100h dup()top label words1 endss2 segmenth1 db 'Please input a string: ','$'h2 db 'The number of the chars that is not digit:','$'crlf db 0dh,0ah,24hs2 endss3 segmentassume cs:s3,ds:s2,ss:s3main proc farmov ax,s1mov ss,axlea sp,topmov ax,s2mov ds,axlea dx,h1mov ah,9int 21hmov cx,0l2: mov ah,1int 21hcmp al,'$'jz exitcmp al,30hjb lcmp al,39hjnb ljmp l2l: inc cxjmp l2exit: lea dx,crlfmov ah,9int 21hlea dx,h2int 21hmov si,0mov bl,10mov ax,cxl4: div blmov dl,ahmov dh,0push dxinc simov ah,0cmp al,0jnz l4l5: pop dxadd dl,30hmov ah,2int 21hdec sicmp si,0jnz l5mov ah,4chint 21Hmain endps3 endsend main11.有一个首地址为mem的10个字的数组,试编程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零s1 segment stackdw 100h dup()top label words1 endss2 segmentmem dw 0,1,0,3,0,0,4,5,6,0,'$'crlf db 0dh,0ah,24hs2 endss3 segmentassume cs:s3,ds:s2,ss:s3main proc farmov ax,s1mov ss,axlea sp,topmov ax,s2mov ds,axmov si,0mov di,2repeat: cmp di,20jz exitmov bx,mem[si]mov dx,mem[di]cmp bx,0jnz nextxchg bx,dxmov mem[si],bxmov mem[di],dxnext: cmp mem[si],0jz ladd si,2l: add di,2jmp repeatexit: mov ah,4chint 21Hmain endps3 endsend main;以下是该算法描述;定义两个指针,当前指针si和检查指针di,先把si指针指向第一个字得到的值bx,;di指向第二个字得到的值dx。