实验五顺序分支结构程序设计_第1页
实验五顺序分支结构程序设计_第2页
实验五顺序分支结构程序设计_第3页
实验五顺序分支结构程序设计_第4页
实验五顺序分支结构程序设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

实验五顺序分支结构程序设计第一页,共十页,2022年,8月28日2.分支结构程序中出现二中选一的分支称为二路分支,三中选一的分支称为三路分支,还有四中选一,N中选一称为多路分支。实现分支的要素有两点:(1)使用能影响状态标志的指令,如算术逻辑运算类指令、移位指令和位测试指令等,将状态标志设置为能正确反映条件成立与否的状态。(2)使用条件转移类指令对状态位进行测试判断,确定程序如何转移,形成分支。实验内容与步骤

1.已知字节变量X,Y存放于VARX,VARY存储单元中,利用公式求Z的值,并将结果存放于RESULT存储单元中。公式:Z=((X+Y)*8-X)/2。参考程序如下:(程序名:SY5-1.ASM)dataSEGMENTvarxDW0006hvaryDW0007hresultDW?dataENDScodeSEGMENTASSUMECS:code,DS:datastart:MOVAX,dataMOVDS,AX第二页,共十页,2022年,8月28日MOVAX,varx ;AX<-XADDAX,vary ;AX<-X+YMOVCL,3SALAX,CL ;AX<-(X+Y)*8SUBAX,varx ;DL<-(X+Y)*8-XSARAX,1 ;DL<-((X+Y)*8-X)/2MOVresult,AXMOVAH,4chINT21h ;退出程序codeENDSENDstart(1)输入程序并检查无误,经汇编、连接后产生正确的可执行文件SY5-1.EXE。(2)执行可执行文件,可以看到执行正常,但是没有任何输出,可以使用DEBUG来调试。第三页,共十页,2022年,8月28日(3)用DEBUG的UCS:0000查看MOVAX,XXXX(DATA)语句,即得到数据段段地址DS=XXXX。(4)单步运行以上程序到最后一条指令,计算出了((X+Y)*8-X)/2的内容(0031H),调试过如下:C:\>DEBUGSY5-1.EXE一_U_ ;反汇编_13F9:0000_B8F813_ MOV_AX,13F8_13F9:0003_8ED8_ MOV_DS,AX_13F9:0005_8B1E0000_ MOV_BX,[0000]_13F9:0009_031E0200_ ADD_BX,[0002]_13F9:000D_B103_ MOV_CL,03_13F9:000F_D3E3_ SHL_BX,CL_13F9:0011_2B1E0000_ SUB_BX,[0000]_13F9:0015_D1FB_ SAR_BX,1_13F9:0017_891E0400_ MOV_[0004],BX_13F9:001B_B44C_ MOV_AH,4C_13F9:001D_CD21_ INT_21_ ;源程序结束一_R_AX=0000BX=0000CX=002FDX=0000SP=0000BP=0000SI=0000DI=0000DS=13E8ES=13E8SS=13F8CS=13F9IP=0000NVUPEIPLNZNAPONC13F9:0000DBF813 MOVAX,13F8一_T_第四页,共十页,2022年,8月28日AX=13F8_BX=0000_CX=002FDX=0000_SP=0000_BP=0000_SI=0000_DI=0000_DS=13E8_ES=13E8_SS=13F8_CS=13F9_IP=0003_NV_UP_EI_PL_NZNAPO_NC_13F9:0003_8ED8_MOV_DS,AX_一_T_AX=13F8_BX=0000_CX=002FDX=0000_SP=0000_BP=0000_SI=0000_DI=0000DS=13F8_ES=13E8SS=13F8_CS=13F9_IP=0005_NV_UP_EI_PL_NZNAPO_NC_13F9:0005_8B1E0000_ MOV_BX,[0000]_ DS:0000=0006_一_T_AX=13F8_BX=0006_CX=002FDX=0000_SP=0000_BP=0000_SI=0000_DI=0000_DS=13F8_ES=13E8SS=13F8_CS=13F9_IP=0009_NV_UP_EI_PL_NZNAPO_NC_13F9:0009_031E0200_ ADD_BX,[0002]_ DS:0002=0007_一_T_AX=13F8_BX=000D_CX=002F_DX=0000_SP=0000_BP=0000_SI=0000_DI=0000_DS=13F8_ES=13E8SS=13F8_CS=13F9_IP=000D_NV_UP_EI_PL_NZNAPO_NC_13F9:000D_B103_ MOV_CL,03_一_T_第五页,共十页,2022年,8月28日AX=13F8_BX=000D_CX=0003_DX=0000_SP=0000_BP=0000_SI=0000_DI=0000_DS=13F8_ES=13E8SS=13F8_CS=13F9_IP=000F_NV_UP_EI_PL_NZNAPO_NC_13F9:000F_D3E3_ SHL_BX,CL_一_T_AX=13F8_BX=0068_CX=0003DX=0000_SP=0000_BP=0000_SI=0000_DI=0000_DS=13F8_ES=13E8SS=13F8_CS=13F9_IP=0011_NV_UP_EI_PL_NZNAPO_NC_13F9:0011_2B1E0000_ SUB_BX,[0000]_一_T_AX=13F8_BX=0062_CX=0003DX=0000_SP=0000_BP=0000_SI=0000_DI=0000_DS=13F8_ES=13E8SS=13F8_CS=13F9_IP=0015_NV_UP_EI_PL_NZNAPO_NC_13F9:0015_D1FB_ SAR_BX,1_一_T_AX=13F8_BX=0031_CX=0003DX=0000_SP=0000_BP=0000_SI=0000_DI=0000_DS=13F8_ES=13E8SS=13F8_CS=13F9_IP=0017_NV_UP_EI_PL_NZNAPO_NC_13F9:0017_891E0400_ MOV_[0004],BX______________DS:0004=0000_一_T_AX=13F8_BX=0031_CX=0003DX=0000_SP=0000_BP=0000_SI=0000_DI=0000_DS=13F8_ES=13E8SS=13F8_CS=13F9_IP=001B_NV_UP_EI_PL_NZNAPO_NC_13F9:001B_B44C_ MOV_AH,4C_一_T_第六页,共十页,2022年,8月28日AX=4CFB_BX=0031_CX=0003_DX=0000_SP=0000_BP=0000_SI=0000_DI=0000_DS=13F8_ES=13E8SS=13F8_CS=13F9_IP=001D_NV_UP_EI_PL_NZNAPO_NC_13F9:001D_CD21_ INT_21_一D00000005 ;数据段三个字内容分别为X,Y,Z13F8:0000060007003100_ ….1._2.假设有一组数据:5,-4,0,3,100,-51,请编一程序,判断:每个数大于_0,等于_0,还是小于_0;并输出其判断结果。y=______即:_1_当_x>0___0_当_x=0_-1_当_x<0_(1)编程提示:・首先将原始数据装入起始地址为_XX_的字节存储单元中。・将判断结果以字符串的形式存放在数据区中,以便在显示输出时调用。・其中判断部分可采用_CMP_指令,得到一个分支结构,分别输出“y=0”,_“y=1”,_“y=-1”。・程序中存在一个循环结构,循环_6_次,调用6_次分支结构后结束。参考程序如下:(程序名:SY5-2.ASM)data第七页,共十页,2022年,8月28日SEGMENTxDB5,-4,0,3,100,-51A1 DB'1',13,10,'$'A2DB'0',13,10,'$'A3DB'-1',13,10,'$'dataENDScodeSEGMENTmainPROCFARASSUMECS:code,DS:datastart:PUSH DSMOV AX,0PUSH AXMOV AX,dataMOV DS,AXLEA SI,xMOV CX,06hagain:MOV AL,[SI]第八页,共十页,2022年,8月28日CMP AL,0JGELOOP1LEA DX,A3JMPNEXTLOOP1:JELOOP2LEA DX,A1JMPNEXTLOOP2:LEA DX,A2NEXT:MOV AH,09hINT21hINC SIDEC CXJNEagainRETmain ENDPcodeENDSENDstart

第九页,共十页,2022年,8月28日(2)输入程序并检查无误、经汇编、连接后产生正确的可执行文件SY5-2.EXE。(3)用DEBUG的U命令查看MOVAX,XXXX(DATA)语句,即得到数据段基址DS:XXXX。(4)用G命令运行以上程序,记录显示结果,

温馨提示

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

评论

0/150

提交评论