热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

循环次数以及几个小问题,谢谢!

.MOVCX,3X1:MOVBX,X[SI]MOVX[SI+2],BXLOOPX1我想问的是循环体MOVBX,X[SI]
..........
    MOV CX,3
X1: MOV BX,X[SI]
    MOV X[SI+2],BX
    LOOP X1

我想问的是循环体MOV BX,X[SI]      一共执行几次,我认为是4次? 书上好像说的是三次.
                MOV X[SI+2],BX

还有一个问题,求负数的绝对值是用NEG指令吗? 可NEG不是求补指令吗,怎么它取补后的值是绝对值吗? 那求补码又用什么指令呢?

谢谢!

19 个解决方案

#1


是 3 次 (CX=3, 2, 1). LOOP 指令在 CX=1 时, 经过了该指令后 CX=0 了, 就不再进行循环了

NEG 是求相反数, 也就是 2 的补码

#2


循环我明白了,

那个用NEG求负数的绝对值是老师说的,所以我郁闷了,你们一般求绝对值怎么求?

#3


对于有符号数, 可以这样:
and ax, 0x7fff ; 相当于把符号位置零

#4


不对吧. ax=-1=0xffff, and ax, 7ffffh 后 ax 为 7fffh = 32767 是 -1 的绝对值吗?

#5


对, 错了 ;-)

#6


我现在想知道的是老师说的对不对? 可以用NEG求绝对值吗?

我个人认为的求补指令是求补码,也许是我的看法错了,所以来求教大家的? 谢谢!

#7


用neg可以求绝对值.
NEG replaces the value of a register or memory operand with its two's complement. The operand is subtracted from zero, and the result is placed in the operand.

cmp ax, 0 ; 值放在ax中
jge gezero
neg ax
gezero:
...

#8


求补码是正确的.

如:
-1: 0xffff
先求反: 0x0000
再加1: 0x0001 = 1

#9


可以的,,,负数的才求补,,正数的补码和原码一样。

#10


也就是说把要求的绝对值的值放在ax中,就可以求了吗?

为什么会这样呢? bx就不行了吗?

#11


放在哪个寄存器都一样的.

#12


求补码是正确的.
如:
-1: 0xffff
先求反: 0x0000
再加1: 0x0001 = 1

这句话理解不了,为什么neg指令求补码也可以,求绝对值也可以. 负数在内存的存储方式不都是补码吗?

#13


不懂.......

#14


cmp ax, 0 ; 值放在ax中
jge gezero
neg ax
gezero:
...

上面的代码中, 如果ax>=0, 则|ax|=ax, 不用再求补码. 只有在ax <0时,
才求ax的补码.

#15


我要求的是绝对值不是补码?

难道补码==绝对值?

#16


负数的补码等于其绝对值

#17


还是不理解,你能举个例子来看看吗?我太笨了.

比如-1的补码是0FFH  这难道就是+1吗?

#18


首先, 千万别说自己笨, 只是我说的很模糊.

-1的补码是0xffff. 它是这样求的:
 1 : 0001
按位求反: fffe
末位加1: ffff -- -1
现在还按这个补码的求法, 作用在ffff上,
ffff : ffff
按位求反: 0000
末位加1: 0001 -- +1 
这个过程就叫求某数的补码(two's complement)

我说的求负数的补码, 实际上是"求负数的补码的补码", 希望没有让你更晕 ;-)

#19


也就是求负数的绝对值对吧!

呵呵! 我明白了"求负数的补码的补码" 这种话正是我想要的,谢谢!

#20


  • 查询电脑电池容量以及循环次数
  • 控制循环次数" rel="nofollow noopener">控制循环次数

推荐阅读
  • angular.element使用方法及总结
    2019独角兽企业重金招聘Python工程师标准在线查询:http:each.sinaapp.comangularapielement.html使用方法 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • PHP引用的概念和用法详解
    本文详细介绍了PHP中引用的概念和用法。引用是指不同的变量名访问同一个变量内容,类似于Unix文件系统中的hardlink。文章从引用的定义、作用、语法和注意事项等方面进行了解释和示例。同时还介绍了对未定义变量使用引用的情况,以及在函数和new运算符中使用引用的注意事项。 ... [详细]
  • 本文总结和分析了JDK核心源码(2)中lang包下的基础知识,包括常用的对象类型包和异常类型包。在对象类型包中,介绍了Object类、String类、StringBuilder类、StringBuffer类和基本元素的包装类。在异常类型包中,介绍了Throwable类、Error类型和Exception类型。这些基础知识对于理解和使用JDK核心源码具有重要意义。 ... [详细]
  • php缓存ri,浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
    thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期和缓存对象。S()缓存方法支持有效期,又称动态缓存方法。本文是小编日常整理有关thinkp ... [详细]
  • 本文介绍了如何对PHP二维数组进行排序以及如何获取最大值。同时还提到了在数据分析系统中使用排序的实例,以及如何统计角色等级和创建角色总数。 ... [详细]
  • 简述在某个项目中需要分析PHP代码,分离出对应的函数调用(以及源代码对应的位置)。虽然这使用正则也可以实现,但无论从效率还是代码复杂度方面考虑ÿ ... [详细]
  • 本文介绍了在实现了System.Collections.Generic.IDictionary接口的泛型字典类中如何使用foreach循环来枚举字典中的键值对。同时还讨论了非泛型字典类和泛型字典类在foreach循环中使用的不同类型,以及使用KeyValuePair类型在foreach循环中枚举泛型字典类的优势。阅读本文可以帮助您更好地理解泛型字典类的使用和性能优化。 ... [详细]
  • 本文整理了Java中org.apache.solr.common.SolrDocument.setField()方法的一些代码示例,展示了SolrDocum ... [详细]
  • 利用空间换时间减少时间复杂度以及以C语言字符串处理为例减少空间复杂度
    在处理字符串的过程当中,通常情况下都会逐个遍历整个字符串数组,在多个字符串的处理中,处理不同,时间复杂度不同,这里通过利用空间换时间等不同方法,以字符串处理为例来讨论几种情况:1: ... [详细]
  • 正则表达式及其范例
    为什么80%的码农都做不了架构师?一、前言部分控制台输入的字符串,编译成java字符串之后才送进内存,比如控制台打\, ... [详细]
  • 1.Listener是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当增加一个HttpSession时 ... [详细]
  • Summarize function is doing alignment without timezone ?
    Hi.Imtryingtogetsummarizefrom00:00otfirstdayofthismonthametric, ... [详细]
  • 原文链接:Python:获取“3年前的今天”的日期时间Python:getdatetimefor3yearsagotoday在Python中,如何获取3年前的今天的datetime ... [详细]
author-avatar
心若繁花花满地
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有