汇编网首页登录博客注册
girl_lulu的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  

[2010-08-07 23:08] 第5章 [bx]和loop指令联合使用

一 从数据到内存(只需一个ds寄存器)

【实验4(2)】

assume cs:code
code segment
 mov ax,0020h
 mov ds,ax
 mov bx,0
 
 mov cx,64
 s: mov [bx],bl
    inc bl
    loop s
 
 mov ax,4c00h
 int 21h
code ends
end
    

0B73:000D FEC3          INC     BL
0B73:000F E2FA          LOOP    000B
0B73:0011 B8004C        MOV     AX,4C00
0B73:0014 CD21          INT     21
0B73:0016 E55D          IN      AX,5D
0B73:0018 C3            RET
0B73:0019 90            NOP
0B73:001A 55            PUSH    BP
0B73:001B 8BEC          MOV     BP,SP
0B73:001D 81EC9000      SUB     SP,0090
-g 16

Program terminated normally
-d 20:0 3f
0020:0000  00 01 02 03 04 05 06 07-08 09 0A 0B 0C 0D 0E 0F   ................
0020:0010  10 11 12 13 14 15 16 17-18 19 1A 1B 1C 1D 1E 1F   ................
0020:0020  20 21 22 23 24 25 26 27-28 29 2A 2B 2C 2D 2E 2F    !"#$%&'()*+,-./
0020:0030  30 31 32 33 34 35 36 37-38 39 3A 3B 3C 3D 3E 3F   0123456789:;<=>?
-\
 \
 \



问题:如果数据和bl不一致,如何实现数据循环传送?


二 从内存到内存(需ds和es两个寄存器)

【P120】

assume cs:code
code segment
 mov ax,0ffffh
 mov ds,ax
 mov ax,0020h
 mov es,ax
 
 mov bx,0
 
 mov cx,12
 s: mov al,[bx]
    mov es:[bx],al  //内存之间数据传送需al寄存器作媒介!
    inc bx
    loop s
 
 mov ax,4c00h
 int 21h
code ends
end



0B73:0000 B8FFFF        MOV     AX,FFFF
0B73:0003 8ED8          MOV     DS,AX
0B73:0005 B82000        MOV     AX,0020
0B73:0008 8EC0          MOV     ES,AX
0B73:000A BB0000        MOV     BX,0000
0B73:000D B90C00        MOV     CX,000C
0B73:0010 8A07          MOV     AL,[BX]
0B73:0012 26            ES:
0B73:0013 8807          MOV     [BX],AL
0B73:0015 43            INC     BX
0B73:0016 E2F8          LOOP    0010
0B73:0018 B8004C        MOV     AX,4C00
0B73:001B CD21          INT     21
0B73:001D 81EC9000      SUB     SP,0090
-g 1d

Program terminated normally
-d ds:0 b
0B63:0000  CD 20 FF 9F 00 9A F0 FE-1D F0 4F 03               . ........O.
-d es:0 b
0B63:0000  CD 20 FF 9F 00 9A F0 FE-1D F0 4F 03               . ........O.
-


注:如果偏移量不一致,则增加寄存器(如dx).



  总结:两者区别!
评论次数(1)  |  浏览次数(479)  |  类型(汇编语言) |  收藏此文  | 

[  masmaster   发表于  2010-08-08 10:07  ]

good~~~

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码