. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->[bx]和loop指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验4-(1):我的解答  [待解决] 回复[ 2次 ]   点击[ 399次 ]  
kekoa83
[帖 主]   [ 发表时间:2010-07-04 18:48 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-11-23 10:14
(1)编程,向内存0:200-0:23F依次传送数据0-63(3FH)

-------------------------------------------------------------------
assume cs:copymsg

mycode segment
        
        mov ax,0h                
        mov cx,40h                ;寄存器cx存储需传送数据个数:40h个
        mov ds,ax                ;将数据段寄存器ds初始化为0000h
        mov bx,0h

s:        mov [bx+200h],bx        ;将寄存器bx中的内容传给内存0000:0200
        inc bx                        ;(bx)=(bx)+1,寄存器bx中内容自加1
        loop s                        ;判断cx值是否为0,不为0则跳转至s:处执行

         mov ax,4c00h
        int 21h

copymsg ends

end
kekoa83
[第1楼]   [ 回复时间:2010-07-04 19:00 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-11-23 10:14
更正,取消寄存器ax使用,共8条指令

------------------------------------------------------------------- 
assume cs:copymsg 

copymsg segment 
        
        mov bx,0h               
        mov cx,40h                ;寄存器cx存储需传送数据个数:40h个 
         mov ds,bx                 ;将数据段寄存器ds初始化为0000h

s:      mov [bx+200h],bx          ;将寄存器bx中的内容传给内存0000:0200 
        inc bx                    ;(bx)=(bx)+1,寄存器bx中内容自加1 
        loop s                    ;循环,判断cx值是否为0,不为0则跳转至s:处执行 

         mov ax,4c00h 
        int 21h 

copymsg ends 

end
jjch224
[第2楼]   [ 回复时间:2010-07-09 19:08 ]   [引用]   [回复]   [ top ] 
荣誉值:16
信誉值:0
注册日期:2010-07-09 09:48
找到知己了,mov [bx+200h],bx改成mov [bx+200h],bl inc bl会更好点。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved