




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
例4.3.1已知9个数字,找出第一个不能够被3整除的数,并且显示其在数列中的位置设计思路:逐个判断每一个数是否能被3整除,如果不能被3整除,输出其所在位置,结束;否则继续判断下一个。本程序中当一个数除以3余数不为0时ZF=0,遇LOOPZ指令跳出循环LOOPZ实例源程序如下: NAME EX9-8 DATA SEGMENT ARRAY DB 0,0,0,3,0,0,4,34,25,30 COUNT EQU $-OFFSET ARRAY DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE BEGIN: MOV AX, DATA MOV DS, AX MOV CX, COUNT MOV DI, 0FFFFH ;-1=DI NEXT: INC DI MOV AH,0 MOV AL,ARRAYDI MOV BH,3 DIV BH CMP AH,0 LOOPZ NEXT JNE OKENTRY MOV DL, N ;没找到 JMP DISPLAY ;显示输出一个零 OKENTRY: MOV DX,DI ;显示非零元素的下标(DI) OR DL,30H DISPLAY: MOV AH,02H INT 21H MOV AH,4CH INT 21H CODE ENDS END BEGIN例4.3.2已知9个数字,找出第一个能够被3整除的数,并且显示其在数列中的位置设计思路:逐个判断每一个数是否能被3整除,如果能被3整除,输出其所在的位置,结束;否则继续判断下一个 程序说明:本程序中一个数除以3后,余数为0时置ZF=1,遇LOOPNE时跳出循环 LOOPNE / LOOPNZ实例源程序如下: NAME EX9_9DATA SEGMENT ARRAY DB 1,4,5,9,0,0,4,34,25,30 COUNT EQU $-OFFSET ARRAY DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE BEGIN: MOV AX, DATA MOV DS, AX MOV CX, COUNT MOV DI, 0FFFFH ;-1=DI NEXT: INC DI MOV AH,0 MOV AL,ARRAYDI MOV BH,3 DIV BH CMP AH,0 LOOPNE NEXT JE OKENTRY MOV DL, N ;没找到 JMP DISPLAY ;显示输出一个零 OKENTRY: MOV DX,DI ;显示非零元素的下标(DI) OR DL,30H DISPLAY: MOV AH,02H INT 21H MOV AH,4CH INT 21H CODE ENDS END BEGIN例4.3.3 已知9个数字,找出所有不能够被3整除的数,并且显示其在数列中的位置。设计思路:找到不能被3整除的数后,继续判断下一个,而不是终止判断。JCXZ示例源程序如下: NAME EX9_10 DATA SEGMENT ARRAY DB 1,2,0,3,0,0,4,34,25,30 COUNT EQU $-OFFSET ARRAY DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE BEGIN: MOV AX, DATA MOV DS, AX MOV CX, COUNT MOV DI, 0FFFFH ;-1-DI NEXT: INC DI MOV AH,0 MOV AL,ARRAYDI MOV BH,3 DIV BH CMP AH,0 JE NOENTRY OKENTRY: MOV DX,DI OR DL,30H DISPLAY: MOV AH,02H INT 21H MOV DL, INT 21H NOENTRY: DEC CX JCXZ EXIT JMP NEXT EXIT: MOV AH,4CH INT 21H CODE ENDS END BEGIN例4.3.4编程序计算S=1+2+3+4+100,并且以十进制形式输出结果 源程序如下: NAME EX9_11 CODE SEGMENT ASSUME CS:CODE START:MOV BX,1 MOV AX,0 MOV CX,100 L: ADD AX,BX INC BX LOOP L MOV CX,AX ;将结果进行二化十输出 MOV DL,0 L1: CMP CX,1000 ;1000与CX比较 JNAE L2 INC DL SUB CX,1000 JMP L1 L2: OR DL,30H MOV AH,02H INT 21H MOV DL,0 L3: CMP CX,100 ;100与CX比较 JNAE L4 INC DL SUB CX,100 JMP L3 L4: OR DL,30H MOV AH,02H INT 21H MOV DL,0 L5: CMP CX,10 ;10与CX比较 JNAE L6 INC DL SUB CX,10 JMP L5 L6: OR DL,30H MOV AH,02H INT 21H MOV DL,CL OR DL,30H MOV AH,02H INT 21H MOV AH,4CH INT 21H CODE ENDS END START 例4.3.5题目:输入39之间的一个数n,输出一个由*组成的三角形源程序如下:.MODEL SMALL.STACK 200H.CODEBEGIN: MOV AH,1;读入一个字符 INT 21HCMP AL,33H;非09重新输入 JB BEGIN CMP AL,39H JA BEGIN SUB AL,30H;ASCII转二进制数MOV CL,AL;循环次数送CLMOV CH,0;CH置0MOV AH,2MOV DL,0DH;输出回车、换行INT 21HMOV DL,0AHINT 21HL1: PUSH CX;外层循环次数压栈保护,同时CX作为新的内层循环次数L2: MOV DL,*;输出n个*MOV AH,2INT 21HLOOP L2MOV DL,0DH;输出回车、换行INT 21HMOV DL,0AHINT 21HPOP CX;回复外层循环次数LOOP L1;外层循环次数减1,不为0转L1MOV AH,4CH;为0结束INT 21HEND BEGIN例4.3.6题目:输入39之间的一个数n,输出一个由*组成的口字形源程序如下:.MODEL SMALL.STACK 200H.CODEBEGIN: MOV AH,1;读入39数字符号INT 21HCMP AL,33H ;非39重新输入JB BEGINCMP AL,39HJA BEGINSUB AL,30H ;是39,n换成2进制数MOV CL,AL ;n送CLMOV CH,0 ;0送CH,循环次数在CXMOV BX,CX ;n送BX MOV AH,2 ;输出回车、换行,使输出到下一行MOV DL,0DHINT 21HMOV DL,0AHINT 21HL3:MOV DL,* ;输出上边框n个*MOV AH,2INT 21HLOOP L3MOV DL,0DH ;输出回车、换行INT 21HMOV DL,0AHINT 21H MOV CX,BX ;取n到CX SUB CX,2 ;n-2送CX,作为中间n-2行的循环计数L1: PUSH CX ;开始除第1行和最后一行外,中间n-2行循环计数, ;因内层循环也用CX计数,故压栈保护外层循环计数 MOV DL,* ;输出中间行最左边的* MOV AH,2 INT 21H MOV CX,BX SUB CX,2 ;中间行每行n-2个*的内层循环计数L2: MOV DL, MOV AH,2 INT 21H LOOP L2 ;内层循环输出n-2个* MOV DL,* MOV AH,2 INT 21H MOV DL,0DH ;输出中间行的回车、换行 INT 21H MOV DL,0AH INT 21H POP CX ;恢复中间行外层循环计数LOOP L1 ;中间行不够n-2转L1输出下一行,否则顺序执行 MOV CX,BX ;开始输出下边框的n个*,方法同上边框L4:MOV DL,*MOV AH,2INT 21H LOOP L4 MOV DL,0DH INT 21H MOV DL,0AH INT 21H MOV AH,4CH ;结束 INT 21H END BEGIN例4.3.6题目: 5阶方阵转置,编出将矩阵A转置的程序,转置后仍放在原处源程序如下:DATASEGMENT ADW 4050H,0003H,5678H,6400H,0009H DW 0099H,0084H,9080H,4587H,0000H DW 1045H,0000H,0001H,0008H,0007H DW 1020H,4321H,5432H,6599H,1256H DW 9000H,5608H,6578H,5000H,5432HDATAENDSSTACKSEGMENT PARA STACK STACK STAPN DW 20 DUP(?) TOP EQU $-OFFSET STAPNSTACKENDSCODESEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV CX,4MOV BX,0 LOOP1: PUSH CXMOV SI,2MOV DI,10 LOOP2: PUSH ABX+SIPUSH ABX+DIPOP ABX+SIPOP ABX+DIADD SI,2ADD DI,0AHLOOP LOOP2ADD BX,0CHPOP CXLOOP LOOP1MOV AH,4CHINT 21HCODEENDSEND START例4.3.7 编制程序把BX寄存器内的二进制数用十六进制的形式在屏幕上显示出来。例4.3.8 在ADDR单元中存放着数Y的地址,编制程序把Y中1的个数存入COUNT单元中。例4.3.9 在附加段中有一个首地址为LIST的未经排序的字数组,在数组的第一个字中存放着该数组的长度,数组的首地址已存放的DI寄存器中。AX寄存器中存放着一个数。要求编程在数组中查找该数,如果找到该数则把它从数组中删除。例4.3.10 编制程序将正数N插入一个已排序的字数组的正确位置。该数组的首地址和末地址分别为ARRAY_HEAD和ARRAY_END,其中所有数均为正数且已按递增的次序排列。例4.3.11 逻辑尺。设有数组X和Y,X中有X1,X2,X10;Y中有Y1,Y2,Y10,编制程序计算:Z1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 紧固件采购工作总结与计划
- 《秦兵马俑》课件评语
- 抑郁症评估护理查房
- 新修订森林法核心解读与实施要点
- 公司水电火安全培训课件
- 护理不良事件分析与防范培训
- 《甲午战争》课件
- 广东省汕头市金平区2024-2025学年高一下学期第一次月考英语考试题目及答案
- 五个好作风课件
- 跟合作伙伴汇报
- 加气现场安全知识培训课件
- 前庭大腺脓肿
- 涉外劳务纠纷管理办法
- 2025年秋人教版二年级上册数学教学计划含教学进度表
- 幼儿园三重一大会议记录范文
- 2025至2030药用包装铝管行业项目调研及市场前景预测评估报告
- 胜利油田安全课件
- 纸箱厂企业介绍
- 热力管网焊接知识培训班课件
- 2024年北京京剧院招聘笔试真题
- 2025年混凝土搅拌站试验员资格考试试题及答案
评论
0/150
提交评论