首页
社区
课程
招聘
帮看一下这个DOS下的ASM函数实现什么功能
发表于: 2007-1-29 09:05 4229

帮看一下这个DOS下的ASM函数实现什么功能

2007-1-29 09:05
4229
Procedure MoveLinBlockD( Src, Dest, Size : LongInt ); Assembler;
Asm
XOR    AX,AX
MOV    ES,AX    {ES := 0}
DB     66H
MOV    SI,WORD(Src)
DB     66H
MOV    DI,WORD(Dest)
DB     66H
MOV    CX,WORD(Size)
MOV    AL,CL
DB     66H
SHR    CX,2
AND    AL,3
CLD
DB     26H
DW     6667H
REP    MOVSW        {REP MOVSD ES:[EDI],ES:[ESI]}
MOV    CL,AL
DW     2667H
REP    MOVSB        {REP MOVSB ES:[EDI],ES:[ESI]}
End;

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
2
memcpy
2007-1-29 09:57
0
雪    币: 189
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
那三个DB 66H起到什么作用.
2007-1-29 17:04
0
雪    币: 212
活跃值: (845)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
16bit dos下,程序使用32bit寄存器
db66 mov ax,0==mov eax,0 下同
2007-1-29 19:09
0
雪    币: 101
活跃值: (12)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
5
66前缀, 表示操作数为扩展长度, 在保护模式下, 扩展长度则为16位。
2007-1-29 20:35
0
游客
登录 | 注册 方可回帖
返回
//