. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->直接定址表
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  288页(第二版)int b 不能相当于:inc word prt cs:[8](概念问题很重要)  [已解决] 回复[ 2次 ]   点击[ 388次 ]  
ztf770710
[帖 主]   [ 发表时间:2013-03-21 23:54 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:2
注册日期:2008-01-16 11:01
code segment
  a db 1,2,3,4,5,6,7,8
  b dw 0
.........
288页中写道:指令:inc b 相当于:inc word ptr cs:[8]这句话是错误的。int b是将b的地址加1,即b的偏移地址由8变为9;而inc word ptr cs:[8]是将cs:[8]这个单元内的内容加1。

大家可在debug中跟踪以下2个程序,看我说的是否正确。不管我是否说错,请大家积极回帖,说明自己的观点。这个很重要,关系到后续程序的编写。
##############################
assume cs:code
code segment
  top dw 1,4,7,9
start:   mov ax,0
         mov ax,top
         inc top
         mov ax,top
         inc top
         mov ax,top
         inc top
         mov ax,top
         mov ax,4c00h
         int 21h
code ends
end start
#############################

#############################
assume cs:code
code segment
  dw 1,4,7,9,12,15,19,22
start:   mov ax,0
         mov bx,0
         mov cx,0
         mov dx,0
         inc word ptr cs:[0]
         mov ax,cs:[0]
         mov bx,cs:[2]
         inc word ptr cs:[2]
         mov cx,cs:[2]
         mov dx,cs:[4]
         mov ax,4c00h
         int 21h
code ends
end start

############################
ztf770710
[第1楼]   [ 回复时间:2013-03-22 14:49 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:2
注册日期:2008-01-16 11:01
inc b 相当于:inc word ptr cs:[8]这句话是对的。我的例子没编好,在debug时产生误解。
ztf770710
[第2楼]   [ 回复时间:2013-03-22 14:51 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:2
注册日期:2008-01-16 11:01
此贴由 贴主 于 [ 2013-03-22 14:51 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved