欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOCX文档下载
 

北京理工大学汇编语言实验四 分支和循环程序设计实验

  • 资源ID:192015797       资源大小:150.76KB        全文页数:9页
  • 资源格式: DOCX        下载积分:15积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要15积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

北京理工大学汇编语言实验四 分支和循环程序设计实验

实验四分支和循环程序设计实验(设计性实验)、实验要求和目的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 A>BJAE/JNB CF=0 OR ZF=1 A>=BJB/JNAE CF=1 AND ZF=0 A<BJBE/JNA CF=1 OR ZF=1 A<=B3) .带符号数条件转移指令。指令转移条件意义JG/JNLE SF=OF AND ZF=0 A>BJGE/JNL SF=OF OR ZF=1 A>=BJL/JNGE SF OF AND ZF=0 A<BJLE/JNG SF OF OR ZF=1 A<=B 在汇编程序设计中,要熟练使用循环指令和跳转等指令来实现循环,理解循环体结构中 的初始化部分、循环体、结束部分,并且要结合前面分支结构相关的知识点,加深对循环结 构的理解和掌握。循环结构的组成及其设计方法的知识要点有:1、循环程序的基本结构通常由3 部分组成1) 初始化部分建立循环初始值,为循环做准备,如设置地址指针,(BX/SI/DI/BP),初始化循环控制变量 或计数器(CX),数据寄存器(AX/DX)初值等.2) 循环体循环体是循环程序的主体, 是程序中重复执行的程序段. 它是由循环工作部分、修改部分、 和循环控制部分。 循环工作部分:完成程序功能的主要程序段,用于解决程序的实际任务; 修改部分:对循环参数进行修改,并为下一次循环做准备; 循环控制部分:判断循环结束条件是否满足。通常判断循环结束方法: 用计数控制循环;循环是否进行了预定的次数。 用条件控制循环。循环终止条件是否满足。3) 结束处理处理部分 主要是对循环的结果进行处理,比如现实提示信息等,很多时候没有此部分程序。2、循环控制指令: 指令格式执行操作循环结束条件LOOP 标号 CX=CX-1 ;若CX=0,则循环 CX=0LOOPNZ/LOOPNE 标号 CX=CX-1;若CX=O 且ZF=O,则循环 CX=0 或ZF=OLOOPZ/LOOPE 标号 CX=CX-1 ;若CX=0 且ZF=1,则循环 CX=0 或ZF=1JCXZ标号仅测试(CX) =0?若等于0,则转移到目标地址,否则就顺序执行3、循环控制可以分为:计数循环和条件循环。作为计数循环,一般是指循环次数是已知 的情况,在程序设计的的循环时,先应将循环次数送入计数器CX中进行计数,在循环体中 使用LOOP等循环指令。当然,也可以通过其他方式来进行,女口excx-l,jnz等结合实现。 四、实验内容与步骤1、判断方程AX2+BX+C=0是否有实根。若有实根,则将字节变量tag置1,否则置0。假 设A、B、C均为字节变量,数据范围为-128127。2、编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z字符,显 示“C” ;若为a-z字符,显示“c” ;若是 回车字符vCR>(其ASCII码为0DH),则结束程序, 若为其它字符则显示显示“ R”。3、(大家再次编成实现实验一的题目,看是否可以优化程序?)分类统计字数细ata中正 数、负数和零的个数,并分别存入内存字变量Positive、Negative和Zero中,数组元素个 数保存在其第一个字中。使用Debug查看Positive、Negative和Zero三个变量的数据。4、编写程序,在字符串变量STRING中存有一个以$为结尾的ASCII码字符串,要求计算 字符串的长度,并把它存入LENGTH单元中。(要求用条件控制循环方法,并且字符串分 数据类型是字节和字两种情况) 注意:涉及到初始数据的,同学们自行给出多组数据,反复加以验证各题程序。五、实验要求与提示1、实验要求( 1)画出各程序流程图;( 2)列出程序清单,加上适量注释;( 3 )回答思考问题;( 4 )记录实验结果; (5)完成实验报告(实验材料上的内容简写,自己的工作要详尽)。六、程序流程图计算 TEMP1-TEMP2 存入TEMPIN*输出有实根七、实验结果(1) aadb 3 bb db6 cc db 3(2) 输入u(3) numdw 1,2,3,4,0,0,-1,-2,-3,-4(4) string db 'abcdefg$'注:第一行:0001表示有实根第二行:输入u,输出c第四五六行:正,零,负分别为4,2,4个第七行:输出8,即一共8个字符八、程序代码data segmentsbbax,bxjmp end2aadb 3js skip1skip5: call Qbb db 36mov temp,1skip6: moval,'R'cc db 3jmp end1mov ah,0temp dw 0skip1: mov temp,0movtemp,axtempindw 0end1: call printcall outputnumdwcall newlinejmp end21,2,3,4,0,0,-1,-2,-3,-4call newlineend2: call newlinepositive dw 0negative dw 0;1 endncall newline,Q,乙D丄丄Lizero dw 0call input;3,ostring db 'abcdefg$'movax,tempmov cx,10lendw 0movtempin,axlea bx,numtab dbcall newlinemovsi,bx'0123456789abcdef 'movax,tempinmov dx,0data endsmovtemp,axl1: cmp ds:si,dxstack segmentcmp ax,0dhjz skip7stkdw 32 dup(0)jz skip5js skip8stack endscmp ax,30hjs skip6jmp skip9 skip7: inc zerocode segmentcmp ax,3ahjmp skip10assumejs skip4skip8: inc negativeds:data,ss:stack,cs:codcmp ax,41hjmp skip10ejs skip6skip9: inc positivestart:cmp ax,5bhjmp skip10movax,datajs skip2skip10: incsimovds,axcmp ax,61hincsimovax,stackjs skip6loop l1movss,axcmp ax,7bhmovdx,negative,js skip3movtemp,dx;1jmp skip6call printmoval,bbskip2: moval,'C'call newlinemovbl,bbmov ah,0movdx,zeroimulblmovtemp,axmovtemp,dxmovtemp,axcall outputcall printmoval,aajmp end2call newlinemovbl,ccskip3: moval,'c'movdx,positiveimulblmov ah,0movtemp,dxmov bl,4movtemp,axcall printimulblcall outputcall newlinemovbx,axjmp end2call newlinemovax,tempskip4: call output;3end;4mov cx,4lea si,stringshral,clmov cx,0mov ah,0l2: moval,ds:silea bx,tabmov ah,0add bx,axcmp al,'$'movdl,ds:bxjz end4mov ah,2inc cxint 21hincsi;4jmp l2movax,tempend4: inc cxand al,0fhmovtemp,cxmov ah,0call printlea bx,tabcall newlineadd bx,ax;4endmovdl,ds:bx,mov ah,2Q: mov ah,4chint 21hint 21hret,input: mov ah,1print: ;output theint 21hASCII in tempmov bx,0;1movbl,almovax,tempmovtemp,bxmov cx,4retshrah,cloutput: mov ah,2moval,ahmovdx,tempmov ah,0int 21hlea bx,tabretadd bx,axnewline:movdl,ds:bxmov ah,2mov ah,2mov dl,0dhint 21hint 21h;2mov ah,2movax,tempmov dl,0ahand ah,0fhint 21hmoval,ahretmov ah,0space:lea bx,tablea bx,tabadd bx,axmovdl,ds:bx+16movdl,ds:bxmov ah,2mov ah,2int 21hint 21hret;3 code ends end startmovax,temp

注意事项

本文(北京理工大学汇编语言实验四 分支和循环程序设计实验)为本站会员(m****)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!