实验四 条件转移指令_第1页
实验四 条件转移指令_第2页
实验四 条件转移指令_第3页
实验四 条件转移指令_第4页
实验四 条件转移指令_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、.实验四 条件转移指令实验目的:通过实验掌握下列知识:1、8086指令:JZ,JNZ,JC,JNC,CMP,SHR。2、程序:用字符搜索法确定字符串长度。3、程序:16进制数化为ASCII码的一般方法。实验内容及步骤:一、用字符搜索法确定字符串长度:1、用A命令在100H开始的内存处键入下列程序:JMPSTART ;无条件调至Start偏移地址为102 DBThis is the program to measure ; 定义一个字符串长度为30DBthe length of a string!$ ;定义字符串,长度为23 不算字符串结束符$START: MOVBX,102 ;内容为102赋给

2、bxMOVAL,24 ;24赋给alXORCL,CL ;cl清零LOP: CMPAL,BX ;地址0102的内容和24表示的字符$比较大小JZEXIT ;遇到$,调至exit,程序结束INCBX ;bx自增1INCCL ;cl自增1JMPLOP ;无条件转移至lopEXIT: INT 32、用G命令运行此程序,并检查CL的统计长度是否与你自己统计的实际长度是否一样?二、16进制数化ASCII码的一般方法(显示内存内容)1、用A命令在100H处键入下列程序:MOV SI,0 ;将内容为0的十六进制数赋给siMOV BL,10 ;将内容为10的十六进制数赋给blLOP: MOV DL,SI ;将地

3、址为0单元的内容赋给dlMOV CL,4 ;将4赋给clSHR DL,CL ;dl的内容逻辑右移4次,最低位进入cfCMP DL,0A ;dl的内容和0a比较大小JCJ1 ;判断有无进位,有了转向j1ADDDL,7 ;无进位,将7和dl的内容相加J1: ADDDL,30 ;将30和dl的内容相加MOVAH,2 ;设置功能号:2赋给ahINT21 ;dos功能调用:显示dl寄存器的内容MOVDL,SI ;将0的内容赋给dlANDDL,0F ;dl的内容和0f相加CMPDL,0A ;dl的内容和0a比较大小JCJ2 ;判断有无进位,有了转向j2ADDDL,7 ;无进位,将dl的内容和7相加放入dl

4、中J2: ADDDL,30 ;有进位,将dl的内容和30相加放入dl中MOVAH,2 ;设置功能号:2赋给ahINT21 ;dos功能调用:显示dl寄存器的内容MOVDL,20 ;将20赋给dl 输入一个空格字符MOVAH,2 ;设置功能号:2赋给ahINT21 ;dos功能调用:显示dl寄存器的内容INCSI ;si自增1DECBL ;dl自减1JNZLOP ;判断结果,若为0调至lopINT20 ;中断程序将十六进制数AB A先显示再让B显示再有空格的显示所以执行后执行前结果一样了0-9 A-F十六进制数转换为ASCII码31-39 41-462、用N,W命令将此程序用CC.COM文件名存

5、入磁盘。3、用Q命令退出DEBUG。4、在DOS命令状态下直接运行CC.COM命令文件,应在屏幕上显示出内存从0000H开始的16个字节的内容,若有错误,用DEBUG检查之。5、自编程序:修改上面程序,使除以16进制数形式显示内存内容外,还能在其右边显示该16进制码所对应的ASCII字符,07-0D的控制字符用.代替。没有加 MOVDL,20 ;将20赋给dl 输入一个空格字符MOVAH,2 ;设置功能号:2赋给ahINT21 ;dos功能调用:显示dl寄存器的内容这段代码的显示三、综合程序(选做):测量一字符串长度,并用16进制数显示之程序:JMPSTART ;无条件跳转至StartDBTh

6、is is a program to measure the length of a string。 ;定义一字符串DB0D,0A ;0D代表回车 0A代表换行DBthe length of the string is: $ ;定义一字符串以 $ 结束START: MOVAH,9 ;显示字符串MOVDX, 102 ;102赋给dxINT21 ;dos功能调用:显示dl寄存器的内容MOVBX, 101 ;101赋给bxMOVAL,$ ;将$ 赋给alMOVDH,FF ;ff赋给dhLOP: INCBX ;bx自增1INCDH ;dh自增1CMPAL,BX ;第一个字符串和$比较大小JNZLOP ;如果不相等,调至lop以上语句是测字符串的长度以下语句是以十六进制数显示MOVCH,2 ;2赋给ch MOVCL,4 ;4赋给clLOP1: ROLDH,CL ; dh循环左移4为MOVDL,DH ;dh的内容赋给dl ANDDL,0F ;dl的内容和0f相与ADDDL,30 ;dl的内容加30 下面语句是把十六进制数转化为ASCII码CMPDL,3A ;dl的内容和3a比较大小JCJ ;dl小于3a的话调至jADDDL,7 ;dl的内容加7 J: MOVAH,2 ;显示一个字符 INT21 ;dos功能调用DECCH ;ch自减1JNZLOP1 ;ch

温馨提示

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

评论

0/150

提交评论