转移指令检测题9

补全编程,利用loop指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在DX中

assume cs:code

code segment

       start:mov ax,2000h

               mov ds,ax

               mov bx,0

            s: mov cl,[bx]

               mov ch,0

              inc cx            ;此处为要填写的空行   

               inc bx

               loop s

          ok:dec bx              ;dec指令的功能和inc相反,dec bx进行的操作为:(bx)=(bx)-1

               mov dx,bx

               mov ax,4c00h

              int 21h

code ends

end start

还有一个实验记录如下:

assume cs:codesg

codesg segment

           mov ax,4c00h

           int 21h

start:   mov ax,0

     s:   nop

           nop

           mov di,offset s

           mov si,offset s2

           mov ax,cs:[si]

           mov cs:[di],ax

     s0:jmp short s

     s1:mov ax,0

          int 21h

          mov ax,0

     s2:jmp short s1

         nop

codesg ends 

end start

单步调试结果如下:

对应的机器码如下:

上面是两张图,中间有重

程序在跳到S处时,执行完指令后就跳到第一条指令去了。原因是jmp short s1对应的机器码中给出的位移值,而不是目的地址,从图中可以看出是F6,等于-10,即当前指令执行完成后IP+2然后-10,回到S1标号处,当把这条指令放到start的下一条语句时,它对应的机器指令指明,IP也应该-10,上移10个位置,所以就到了第一条指令mov ax 4c00h,而不是跳到s1处

转载于:https://www.cnblogs.com/919czzl/p/4155267.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/459818.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言 java append_C++中append函数的用法和函数定义。谢谢!

展开全部要想使用标准C中string类,必须要包含#include // 注意是,不62616964757a686964616fe78988e69d8331333339663434是,带.h的是C语言中的头文件using std::string;using std::wstring;或using namespace std;下面你就可以使用string/wstr…

PHP array_flip() array_merge() array+array的使用总结

array_flip(array); //传递一个数组参数,对该数组的键、值进行翻转 例如: $a array(a,b,c ); print_r(array_flip($a));//输出为: Array ([a] > 0[b] > 1[c] > 2 )//需要注意的是: array_flip(): Can only flip STRING …

很好用的程序员在线画图软件

今天向大家推荐一个很好用的在线画图软件:今天向大家推荐一个很好用的在线画图软件:今天向大家推荐一个很好用的在线画图软件:(重要的事情说三篇)连接地址如下:https://www.processon.com/i/55e3195de4b0df…

java breakpoint_java断点

第一步:用firefox运行程序,当点击保存,提示保存失败后,启动firebug通过请求找到addNew.ezt出现错误,在eztnews.xml里通过ctrlF查找找到请求执行的类和方法找到NewsAction类的doAddNew方法然后在通过找到NewsActions.ja…

1)C++对象大小计算

C对象的大小不同的编译器的实现是不一样的,以下仅讨论.net2003,其他编译的可能出现的结果以下也做了分析和猜测。在反推不同编译器实现的C对象的大小时。对齐是一个很重要也容易被遗忘的问题。class A{}; 类A是一个空类,但是它的大小并不…

OC之ARC环境中的循环strong问题

2019独角兽企业重金招聘Python工程师标准>>> main.m文件&#xff1a; #import <Foundation/Foundation.h> #import "Person.h" #import "Dog.h"int main() {Person *p [[Person alloc] init];Dog *d [[Dog alloc] init];p.dog d;d.per…

java metric_java版的Metric工具介绍

Metrics是一个给JAVA服务的各项指标提供度量工具的包&#xff0c;在JAVA代码中嵌入Metrics代码&#xff0c;可以方便的对业务代码的各个指标进行监控&#xff0c;同时&#xff0c;Metrics能够很好的跟Ganlia、Graphite结合&#xff0c;方便的提供图形化接口。基本使用方式直接将…

15_采用Pull解析器解析和生成XML内容

java还提供SAX和DOM用于解析XML Android还集成了Pull解析器——推荐 package cn.itcast.service;import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1…

Android自定义view之圆形进度条

本节介绍自定义view-圆形进度条思路&#xff1a;根据前面介绍的自定义view内容可拓展得之&#xff1b;1&#xff1a;新建类继承自View2&#xff1a;添加自定义view属性3&#xff1a;重写onDraw(Canvas canvas)4&#xff1a;实现功能下面上代码1.自定义view代码&#xff1a; pub…

java二级考试备考_2017计算机二级考试《JAVA》备考测试题「带答案」

2017计算机二级考试《JAVA》备考测试题「带答案」为确保同学们将所涉及的考点全面复习到位&#xff0c;让大家充满信心的步入考场&#xff0c;以下是百分网小编搜索整理的一份计算机二级考试《JAVA》备考测试题【带答案】&#xff0c;供参考练习&#xff0c;希望对大家有所帮助…

Thinkphp 关联模型和试图模型区别

关联模型主要在多表操作时使用&#xff0c;比如 user表&#xff0c;user_role表&#xff0c;role表 user_role字段&#xff1a;uid,rid&#xff0c;它作为中间表&#xff0c;负责将user和role之间的&#xff0c;1对1&#xff0c;1对多&#xff0c;多对多的关系进行保存。 这时要…

windows7下安装php的imagick和imagemagick扩展教程

这篇文章主要介绍了windows7下安装php的imagick和imagemagick扩展教程,同样也适应XP操作系统,Win8下就没测试过了,需要的朋友可以参考下 最近的PHP项目中&#xff0c;需要用到切图和缩图的效果&#xff0c;在linux测试服务器上很轻松的就安装好php imagick扩展。但是在本地wind…

java 线程间通信 handler_Handler不同线程间的通信

转http://www.iteye.com/problems/69457Activity启动后点击一个界面按钮后会开启一个服务(暂定为padService)&#xff0c;在padService中会启动一个线程(暂定为Thread-3)发起Socket连接。我们项目中使用mina作为socket通信框架&#xff0c;用过mina的同志们应该熟悉&#xff0c…

通过mysql show processlist 命令检查mysql锁的方法

作者&#xff1a; 字体&#xff1a;[增加 减小] 类型&#xff1a;转载 时间&#xff1a;2010-03-07show processlist 命令非常实用&#xff0c;有时候mysql经常跑到50%以上或更多&#xff0c;就需要用这个命令看哪个sql语句占用资源比较多&#xff0c;就知道哪个网站的程序问题…

java流类图结构_java学习之IO流(学习之旅,一)

个人在学习IO流的时候看到如下所示java 流类图结构的时候&#xff0c;我的感想是&#xff0c;这么多处于蒙的状态。Java流类图结构这么多&#xff0c;没有分类不好学&#xff0c;那我们就慢慢一口一口的吃&#xff0c;这样每天学习一点就好了&#xff0c;其实很多类并不是常用的…

php 安装xdebug扩展

php 扩展获取地址 http://pecl.php.net/package/ 编译安装的过程 wget http://pecl.php.net/get/xdebug-2.2.2.tgz tar -zxvf xdebug-2.2.2.tgz cd xdebug-2.2.2/ /data/klj/php/bin/phpize ./configure --enable-xdebug --with-php-config/data/klj/php/bin/php-config mak…

通过VB向SQL Server数据库中录入数据

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)一、数据录入通过VB向SQL Server数据库中录入数据&#xff0c;可以使用数据绑定控件录入数据与使用SQL语句录入1.利用数据绑定控件录入数据使用数据绑定控件录入数据可以运行较少的代码&…

拨打电话 java_简单拨打电话程序

众所周知,对于一个手机,能拨打电话是其最重要也是最常用的一个功能.而在Android里是怎么样实现拨打电话的程序呢?我在这里写了一个简单的拨打电话的Demo,供大家参考.一共分为5个步骤.Step 1:新建一个Android工程,命名为phoneCallDemo.Step 2:设计程序的界面,打开main.xml把内容…

Apple开发者账号申请学习方式

http://jingyan.baidu.com/article/414eccf610e7c76b431f0a94.html https://developer.apple.com/wwdc/schedule/转载于:https://www.cnblogs.com/wcLT/p/4167707.html

SQLite/嵌入式数据库

SQLite/嵌入式数据库 的项目要么不使用数据库&#xff08;一两个文配置文件就可以搞定&#xff09;&#xff0c;要么就会有很多的数据&#xff0c;用到 postgresql&#xff0c;操练sqlite的还没有。现在我有个自己的小测试例子&#xff0c;写个数据库对比的小项目例子&#xff…