吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 703|回复: 4
收起左侧

[讨论] 疫情期间在家学汇编语言,有个题不太理解,恳请哪位老师看一下!

[复制链接]
米泔水 发表于 2022-5-20 22:01
数据段中有一由N个元素组成的字数级,其中首地址为DEST,要在该数组中查找等于8888的字符,并将其序号送入INDEX单元。
            ⋮
        xor di,di                               ;DI清0
       mov cx,N                              ;数组长度存入CX
       mov  AX,8888H                    ;查找数据存入AX
AGAIN:
      CMP  ax, DS:DEST[di]            ;比较是否与查找数据相同
      je  FIND                                 ;相同则跳转
      add  di,  2                              ;修改指针
      loop   AGAIN                        ; 继续查找
FIND:
     sar    di,1                               :把DI除以2才是序号
     mov    INDEX, di                   ;把序号送入指定单元
         ⋮

以上的  sar    di, 1     这条指令不太理解为什么要除以2才是序号。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

kof888 发表于 2022-5-21 11:19
因为序号di每次都是+2,所以实际需要除以2
wgz001 发表于 2022-5-21 11:44
 楼主| 米泔水 发表于 2022-5-21 13:31
kof888 发表于 2022-5-21 11:19
因为序号di每次都是+2,所以实际需要除以2

还是不懂为啥要除以2才是序号?
A学习的小菜鸟 发表于 2022-5-22 11:24
因为段地址长度是2倍,所以要除以2,你只要知道要除以2就可以了,如果要深入理解汇编,要结合操作系统原理一起来看,如果要编程,则只需要理解汇编的内存原理就行,没必要过于纠结汇编
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-13 20:06

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表