. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  汇编语言 检测点9.2 第三版  [已解决] 回复[ 2次 ]   点击[ 278次 ]  
kennedy
[帖 主]   [ 发表时间:2014-09-05 19:25 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2014-09-05 19:19
;*****************************************

;实现在内存2000H段中查找第一个值为零的字节,

;找到后,将它的偏移地址存储到dx中

;******************************************
从网上找到的答案,但自己改的代码经过debug感觉效率高,如有不对请拍砖
<code>
assume cs:code 

code segment 

start:

    mov ax,2000H

    mov ds,ax

    mov bx,0

  s:

    mov cl,[bx]  ;;;;;;;;;;;;这里能否使用mov cx, [bx]

    mov ch,0     ;;;;;;;;;;; 这步骤省略,目的是字操作 比字节操作更快

    jcxz ok

    inc bx          ;;;;;;;;;;;;这里改成add bx,2

  jmp short s

  ok:

    mov dx,bx

    mov ax,4c00h

    int 21h

code ends 
</code>
kennedy
[第1楼]   [ 回复时间:2014-09-05 19:50 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2014-09-05 19:19
回复:[贴 主]
------------------
理解错了!
内存单元是字节单元,一个单元存放一个字节
如果这么写就是以字(dword)为单位做计算了 (cx=0000时退出)
kennedy
[第2楼]   [ 回复时间:2014-09-05 19:50 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2014-09-05 19:19
此贴由 贴主 于 [ 2014-09-05 19:50 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved