. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->INT指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验13 (3) 对书上面代码的疑问 请大家发表下意见  [已解决] 回复[ 2次 ]   点击[ 578次 ]  
q470393267
[帖 主]   [ 发表时间:2009-04-18 10:35 ]   [引用]   [回复]   [ top ] 
荣誉值:18
信誉值:0
注册日期:2009-04-04 22:58
assume cs:code
code segment
s1:      db 'Good,better,best,','$'
s2:      db 'Never let it rest,','$'
s3:      db 'Till good is better,','$'
s4:      db 'And better,best.','$'
s:       dw offset s1,offset s2,offset s3,offset s4
row:     db 2,4,6,8

start:   mov ax,cs
         mov ds,ax
         mov bx,offset s
         mov si,offset row
         mov cx,4
ok:      mov bh,0
         mov dh,[si]         ;[si]为所填内容
          mov dl,0
         mov ah,2
         int 10h

         mov dx,[bx]         ;[bx]为所填内容
          mov ah,9
         int 21h
         inc si
         add bx,2            ;这两条指令为所填内容
         loop ok

         mov ax,4c00h
         int 21h
code ends
end start
  按题意上面所填的代码应不会错,可是书上面一开始bx中存标号S的偏移地址值,到ok中置光标的程序中又对bh赋值为0而没有保护之前bx中的值我觉得这样是错的,虽然这里程序不会错那也只是因为s的偏移地址的高八位本身为0即bh=0,这样子到底mov bh,0这条指令没有意义还是书本漏掉了保护bx的值呢~ 本人只是才学到13章感觉这里有点问题,也可能是我错了 希望大家别笑话啊~
q470393267
[第1楼]   [ 回复时间:2009-04-26 19:46 ]   [引用]   [回复]   [ top ] 
荣誉值:18
信誉值:0
注册日期:2009-04-04 22:58
收摊~
q470393267
[第2楼]   [ 回复时间:2009-04-26 19:46 ]   [引用]   [回复]   [ top ] 
荣誉值:18
信誉值:0
注册日期:2009-04-04 22:58
此贴由 贴主 于 [ 2009-04-26 19:46 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved