汇编语言实验四分支和循环程序设计实验_第1页
汇编语言实验四分支和循环程序设计实验_第2页
汇编语言实验四分支和循环程序设计实验_第3页
汇编语言实验四分支和循环程序设计实验_第4页
汇编语言实验四分支和循环程序设计实验_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验四 分支和循环程序设计实验(设计性实验)一、实验要求和目的1熟悉汇编语言程序设计结构;2熟悉汇编语言分支程序基本指令的使用方法;3掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法;4了解汇编语言循环程序设计的基本流程;5熟悉汇编语言循环基本指令的使用方法;6掌握利用汇编语言的循环指令完成循环程序设计方法。二、软硬件环境1、硬件环境:计算机系统 windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。三、实验涉及的主要知识在实际应用中,经常根据一些条件来选择一条分支执行。汇编语言的条件判断主要是通过状态寄存器中的状态位、无符号数相减或有符号相减而导致的结果来进行。1无条件转移指令JMP无条件转移指令JMP 是使程序无条件转移至目标处,又分为段内转移、段间转移。2条件转移指令JXX条件转移指令可分为三大类:1)简单条件转移指令指令。根据单个标志位的状态判断转移条件。标志位 指令 转移条件 意义JC CF=1 有进位/借位CFJNC CF=0 无进位/借位JE/JZ ZF=1 相等/等于0ZFJNE/JNZ ZF=0 不相等/不等于0JS SF=1 是负数SFJNS SF=0 是正数JO OF=1 有溢出OFJNO OF=0 无溢出JP/JPE PF=1 有偶数个1PFJNP/JPO PF=0 有奇数个12)无符号数条件转移指令。假设在条件转移指令前使用比较指令,比较两个无符号数A,B,指令进行的的操作是A-B,其转移指令如下:指令 转移条件 意义JA/JNBE CF=0 AND ZF=0 ABJAE/JNB CF=0 OR ZF=1 A=BJB/JNAE CF=1 AND ZF=0 ABJGE/JNL SF=OF OR ZF=1 A=BJL/JNGE SF OF AND ZF=0 A(其ASCII 码为0DH),则结束程序,若为其它字符则显示显示“R”。3、(大家再次编成实现实验一的题目,看是否可以优化程序?)分类统计字数组data 中正数、负数和零的个数,并分别存入内存字变量Positive、Negative 和Zero 中,数组元素个数保存在其第一个字中。使用Debug 查看Positive、Negative 和Zero 三个变量的数据。4、编写程序,在字符串变量STRING 中存有一个以$为结尾的ASCII 码字符串,要求计算字符串的长度,并把它存入LENGTH 单元中。(要求用条件控制循环方法,并且字符串分数据类型是字节和字两种情况)注意:涉及到初始数据的,同学们自行给出多组数据,反复加以验证各题程序。五、实验要求与提示1、实验要求(1)画出各程序流程图;(2)列出程序清单,加上适量注释;(3)回答思考问题;(4)记录实验结果;(5) 完成实验报告(实验材料上的内容简写,自己的工作要详尽)。六、程序流程图开始输出无实根计算 B * B 存入 T E M P 1计算 A * C 存入 T E M P 2计算 T E M P 2 * 4 存入 T E M P 2计算 T E M P 1 - T E M P 2存入 T E M P 1T E M P 1 0 ?结束输出有实根YN( 1 )开始输入一个字符判断是否是回车判断是否是数字判断是否是大写字母判断是否是小写字母结束输出该数字输出 C输出 c输出 RYYYYNNNN( 2 )初始化取一个数P o s i t i v e 增加 1Z e r o 增加 1N e g a t i v e 增加 1该数字大于 0该数字等于 0YYNN开始输出数否为最后一个数YN结束( 3 )开始输出计数器初始化当前所指为 $结束YN( 4 )计数器加 1指针加 1七、实验结果(1)aa db 3bb db 6cc db 3(2)输入 u(3)num dw 1,2,3,4,0,0,-1,-2,-3,-4(4)string db abcdefg$注:第一行:0001表示有实根第二行:输入u,输出c第四五六行:正,零,负分别为4,2,4个第七行:输出8,即一共8个字符八、程序代码data segmentaa db 3bb db 36cc db 3temp dw 0tempin dw 0num dw 1,2,3,4,0,0,-1,-2,-3,-4positive dw 0negative dw 0zero dw 0string db abcdefg$len dw 0tab db 0123456789abcdef data endsstack segmentstk dw 32 dup(0)stack endscode segmentassume ds:data,ss:stack,cs:codestart:mov ax,datamov ds,axmov ax,stackmov ss,ax;1mov al,bbmov bl,bbimul blmov temp,axmov al,aamov bl,ccimul blmov bl,4imul blmov bx,axmov ax,tempsbb ax,bxjs skip1mov temp,1jmp end1skip1: mov temp,0end1: call printcall newlinecall newline;1 end;2call inputmov ax,tempmov tempin,axcall newlinemov ax,tempinmov temp,axcmp ax,0dhjz skip5cmp ax,30hjs skip6cmp ax,3ahjs skip4cmp ax,41hjs skip6cmp ax,5bhjs skip2cmp ax,61hjs skip6cmp ax,7bhjs skip3jmp skip6skip2: mov al,Cmov ah,0mov temp,axcall outputjmp end2skip3: mov al,cmov ah,0mov temp,axcall outputjmp end2skip4: call outputjmp end2skip5: call Qskip6: mov al,Rmov ah,0mov temp,axcall outputjmp end2end2: call newlinecall newline;2end;3mov cx,10lea bx,nummov si,bxmov dx,0l1: cmp ds:si,dxjz skip7js skip8jmp skip9skip7: inc zerojmp skip10skip8: inc negativejmp skip10skip9: inc positivejmp skip10skip10: inc siinc siloop l1mov dx,negativemov temp,dxcall printcall newlinemov dx,zeromov temp,dxcall printcall newlinemov dx,positivemov temp,dxcall printcall newlinecall newline;3end;4lea si,stringmov cx,0l2: mov al,ds:simov ah,0cmp al,$jz end4inc cxinc sijmp l2end4: inc cxmov temp,cxcall printcall newline;4end;Q: mov ah,4chint 21h;print: ;output the ASCII in temp;1mov ax,tempmov cx,4shr ah,clmov al,ahmov ah,0lea bx,tabadd bx,axmov dl,ds:bxmov ah,2int 21h;2mov ax,tempand ah,0fhmov al,ahmov ah,0lea bx,tabadd bx,axmov dl,ds:bxmov ah,2int 21h;3mov ax,tempmov cx,4shr al,clmov ah,0lea bx,tabadd bx,axmov dl,ds:bxmov ah,2int 21h;4mov ax,tempand al,0fhmov ah,0lea bx,tabadd bx,axmov dl,ds:bxmov ah,2int 21hretinput: mov ah,1int 21hmov bx,0mo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论