写一个内存拷贝函数,用以测试cpu和内存的性能

insulted 2009-06-14 09:06:40
如题!
...全文
69 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Areslee 2009-06-19
  • 打赏
  • 举报
回复
invd
禁止CACHE
大熊猫侯佩 2009-06-19
  • 打赏
  • 举报
回复
一种方法是使用串传送指令。
insulted 2009-06-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 djygrdzh 的回复:]
别忘了禁止cache,否则可能是测试CPU缓冲性能了
[/Quote]
怎么去做?
djygrdzh 2009-06-16
  • 打赏
  • 举报
回复
别忘了禁止cache,否则可能是测试CPU缓冲性能了
Tippisum 2009-06-15
  • 打赏
  • 举报
回复

BUFSTART equ <> ; 填充:某个安全的内存缓冲区(段地址),用于测试
LEN equ <> ; 填充:要复制的大小
SOURCESTART equ <> ; 填充:源数据地址(段地址)

src segment at SOURCESTART
src ends

buf segment at BUFSTART
buf ens

code segment
ctbufl dw ?
ctbufh dw ?
assume cs:code,ds:src,es:buf
start:
mov ax,40h
mov ds,ax
mov ax,code
mov es,ax
mov si,6Ch
mov di,offset ctbuf
mov cx,2
rep movsw
mov ax,src
mov ds,ax
mov ax,buf
mov es,ax
mov cx,LEN
xor si,si
xor di,di
loop1:
movsb
loop loop1
mov ax,40h
mov ds,ax
mov ax,code
mov es,ax
mov ax,word ptr ds:[6Ch]
mov dx,word ptr ds:[6Eh]
sub ax,ctbufl
sbb dx,ctbufh
; 此时DX:AX中的值就是执行指定的移动所耗费的时间(单位:日时钟计数值)
; 接下来编程输出对应的时间即可。


mov ax,4C00h
int 21h
code ends
end start
insulted 2009-06-15
  • 打赏
  • 举报
回复
广告?

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧