. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验9的设计:一起讨论!  [已解决] 回复[ 3次 ]   点击[ 282次 ]  
yugong
[帖 主]   [ 发表时间:2008-10-13 21:36 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:8
注册日期:2008-09-15 09:10
assume cs:code ,ds:data

data segment
     db 'welcome to masm!'
data ends

code segment 
 start:mov ax,data
       mov ds,ax
       mov bx,0

       mov ax,0B800H
       mov es,ax
       mov bp,7C8H
       
       mov cx,29
     s:mov dl,[bx]
       mov es:[bp],dl
       mov word ptr es:[bp+1],24h
       inc bx
       add bp,2
       loop s
    
       mov ax,4c00h
      int 21h
code ends
end start
我的程序没有用很复杂的跳转指令,有好想法的,不凡一起讨论!
mess
[第1楼]   [ 回复时间:2008-10-14 10:21 ]   [引用]   [回复]   [ top ] 
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48
上面的程序“基本实现”了。

  welcome to masm!╕P♣Ä╪╗  ╕ ╕Ä└
---------------
这是楼主的显示结果,所以只能说是基本实现(建议楼主要先调试好自己的程序,直接看运行结果,debug调试,这个结果的问题是很明显的)

bp寄存器好像在这个试验以前还没有讲呢吧,忘记了:-)
不过[bp]默认的段寄存器是ss,一般不上面这样用,不过也没问题。
如果用sp是肯定是不行的了(肯定会在哪出现问题;))。
yugong
[第2楼]   [ 回复时间:2008-10-14 17:55 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:8
注册日期:2008-09-15 09:10
谢谢mess你能看我的程序!
这里我指明一个错误:将mov cx,29改为mov cx,16 
还有一点要说的是,bp寄存器在这之前已经学了,要不用这个寄存器就只有si这个寄存器了!
yugong
[第3楼]   [ 回复时间:2008-10-15 10:01 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:8
注册日期:2008-09-15 09:10
此贴由 贴主 于 [ 2008-10-15 10:01 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved