24个汇编实例小程序.doc
《24个汇编实例小程序.doc》由会员分享,可在线阅读,更多相关《24个汇编实例小程序.doc(38页珍藏版)》请在课桌文档上搜索。
1、-24个汇编小程序题目列表:逆序输出字符串“BASED ADDRESSING从键盘上输入两个数,分别放到*,y单元,求出它们的和试编写一段程序,要求在长度为10h的数组中,找出大于42h的无符号数的个数并存入地址为up开场区域,找出小于42h的无符号数的个数并存入地址为down的开场区域键盘输入一段字符串,其中小写字母以大写字母输出,其他字符不变输出从键盘上就收一个小写字母,找出它的前导字符和后续字符,在顺序显示这三个字符把一个包含20个数据的数组M分成两组:正整数组P和负整数组N,分别把这两个数组中的数据的个数显示出来求出首地址为data的100个字数组中的最小偶数,并把它放在a*中输入两船
2、字符串string1和string2,并比拟两个字符串是否相等,相等就显示“match,否则显示“no match从键盘接收一个四位的十六进制数,并在终端显示与它等值的二进制数从键盘输入一系列以$为完毕符的字符串,然后对其中的非数字字符计数,并显示计数结果有一个首地址为mem的100个字的数组,试编程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余局部补上零从键盘上输入一串字符用回车键完毕,使用10号功能调用放在string中,是编制一个程序测试字符串中是否存在数字。如有,则把cl的第五位置1,否则将该位置置0在首地址为data的字数组中,存放了100h的16位字数据,试编写一个
3、程序,求出平均值放在a*存放器中,并求出数组中有多少个数小于此平均值,将结果放在b*存放器中(f分别考虑有符号数、无符号数情况)一直数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。试编制一个程序,把既在A中又在B中出现的整数存放于数组C中设在A、B和D单元中分别存放着三个数。假设三个数都不是0,则求出三个数的和并存放在S单元,假设其中有一个数为0,则把其它两个单元也清零。请编写此程序从键盘输入一系列字符以回车键完毕,并按字母、数字和其他字符分类计数,最后显示这三类的计数结果已定义两个整数变量A和B,试编写程序完成以下功能(1) 假设两个树种有一个是奇数,则将奇数存入A中,偶数存
4、入B中(2) 假设两个数均为奇数,则将两个数加1后存回原变量(3) 假设两个数均为偶数,则两个变量均不变写一段子程序skiplines,完成输出空行的功能。空行的行数由用户在主程序过键盘输入,并将行数放在a*存放器中设有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盘根目录建立一个文件abc.t*t,第一次向文件写入“123456六个字符,第二次增加“abcdef
5、g几个字符从键盘上输入文本文件:“d:temp.t*t的容后,然后新建一个文件“d:temp2.t*t,把前一个文件的所有容复制到后一个文件中从键盘上输入一个十进制数,以十六进制数显示出来。要求子程序用存放器参数传送方法试编制一个程序,把b*存放器中的二进制数用十六进制数的形式在屏幕上显示出来代码:1.逆序输出字符串“BASED ADDRESSINGs1 segment stack ;定义栈段s1 dw 100 dup(?) ;定义栈空间为100top label word ;top指向栈顶s1 endss2 segment ;定义数据段s2s db BASED ADDRESSING,$ ;定
6、义字符串sS2 endss3 segment ;定义代码段s3 assume cs:s3,ds:s2,ss:s1main proc far mov a*,s1 ;栈初始化 mov ss,a* lea sp,top ;栈初始化 mov a*,s2 ;数据段初始化 mov ds,a* ;数据段初始化 mov si,15l: mov dl,ssi ;dl获取字符串s的最后一个从零开场的第十五个字符 mov ah,2 ;调用int 21h 2号功能输出dl上的值 int 21h dec si ;存放器减一,准备获取下一个字符 cmp si,0 ja l mov ah,4ch ;终止 int 21hma
7、in endps3 ends end main2.从键盘上输入两个数,分别放到*,y单元,求出它们的和s1 segment stack dw 100h dup(?)top label words1 endss2 segmenth1 db Please input *:,$ ;提示输入h2 db Please input y:,$ ;提示输入h3 db z=*+y:,$ ;提示输出crlf db 0dh,0ah,24h ;定义回车换行* dw ?y dw ?s2 endss3 segment assume cs:s3,ds:s2,ss:s3main proc far mov a*,s1 ;初始化
8、 mov ss,a* lea sp,top mov a*,s2 mov ds,a* ;初始化 lea d*,h1 ;int 21h 9号功能输出“提示输入*的字符串 mov ah,9 int 21h *or b*,b* ;b*清零,即把b*置零Input*: mov ah,1 ;输入一个字符 int 21h cmp al,0dh ;判断时候为“回车字符 jz e*it1 ;如果是回车字符就跳转到e*it1 cmp al,30h ;和30h即字符0的asii值比拟 jl e*it1 ;如果输入字符小于0,跳转到e*it1 cmp al,39h ;和39h(即字符9的ascii值)比拟 jg e*
9、it1 ;如果输入字符大于9,跳转到e*it1 sub al,30h ;al减去30h,输入字符转化成数字从这一行开场到后面的add b*,a*为输入字符转化为数字的处理方法 cbw ;al扩大为a* *chg a*,b* mov c*,10 mul c* *chg a*,b* add b*,a* ;sub al,30h开场到这一行为输入字符转化为数字的处理方法 jmp Input* e*it1: mov*,b* ;把输入的存于b*的放到*中 lea d*,crlf mov ah,9 int 21h lea d*,h2 mov ah,9 int 21h *or b*,b*InputY: ;和I
10、nput*类似,输入y mov ah,1 int 21h cmp al,0dh jz e*it2cmp al,30hjl e*it2 cmp al,39h jg e*it2 sub al,30h cbw *chg a*,b* mov c*,10 mul c* *chg a*,b* add b*,a* jmp InputYe*it2: movy,b* ;把输入的存于b*的放到y中movb*,* add b*,y ;此时b*为两数加和 lea d*,crlf mov ah,9 int 21H lea d*,h3 mov ah,9 int 21h *or si,si ;si清零,用作计数 mov a
11、*,b* ;把和放到a*上 l4: mov cl,10 ;把和连续除以10知道和变为零,余数依次进栈 div cl mov dl,ah mov dh,0 push d* inc simovah,0 ;重要,不能漏写 cmp al,0 jnz l4l5: pop d* ;余数依次出栈 add dl,30h ;余数转换为显示的余数字符 mov ah,2 ;输入余数字符 int 21h dec si cmp si,0 jnz l5 mov ah,4ch int 21Hmain endps3 ends end main3.是编写一段程序,要求在长度为10的数组中,找出大于42h的无符号数的个数并存入地
12、址为up开场区域,找出小于42h的无符号数的个数并存入地址为down的开场区域,并分别显示up、down数组的个数和数组的数字s1 segment stack dw 100h dup(?)top label words1 endss2 segmenth1dbthe num of up array and the up array are(prints in decimalism) :,$h2dbthe num of down array and the down array are(prints in decimalism) :,$crlf db 0dh,0ah,24harray db 0,5
13、0h,11h,61h,22h,72h,33h,73h,41h,74h,$ ;定义数组arrayup db 10 dup(?) ;定义up数组 down db 10 dup(?) ;定义down数组s2 endss3 segment assume cs:s3,ds:s2,ss:s3main proc far mov a*,s1 mov ss,a* lea sp,top mov a*,s2 mov ds,a* mov si,0 mov di,1 mov bp,1 repeat: cmp arraysi,42h ;把array数组中小于42h的值放到down数组里,大于42h的值放到up数组里面 j
14、b downarray mov dl,arraysi mov upbp,dl inc si cmp si,10 jz e*it1inc bp jmp repeatdownarray:mov dl,arraysi mov downdi,dl inc si cmp si,10 jz e*it2inc di jmp repeate*it1:subdi,1jmpe*ite*it2:subbp,1e*it: mov d*,bp ;把分配好的up数组和down数组在其有效数字后面添加$,便于后面的输出完毕 mov up0,dlincbpmov upbp,$ mov d*,di mov down0,dlin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 24 汇编 实例 程序

链接地址:https://www.desk33.com/p-9321.html