注册 登录
编程论坛 汇编论坛

SOS----关于寻址方式,速度,频率

flyhomesars 发布于 2008-10-28 21:05, 1309 次点击
一个很简单的程序,稍微点循环,用不同的寻址方式可以得到不同的运行时间,再用时间关系求程序的频率和存储器频率
本人刚学汇编,在学寻址方式,题目也不太明白,loop是循环,这个里面是循环多少次~
举个例子
mov cx,10000
push cx
next2; mov cx 10000
next1; add ax,bx
add ax,bx
.
.
.
.
.
loop next1
pop cx
loop next2

这个程序,记这个为第一个时间T1,
然后把里面所有add ax,bx换为
ax,[bx]-------------T2,
ax,[bx+si+5]--------T3,
[bx+si+5],ax--------T4.


万分感谢
4 回复
#2
ONEPROBLEM2008-10-28 21:27
loop循环的次数是根据cx寄存器的值确定的.
每执行一次循环后,cx自减1 .
#3
flyhomesars2008-10-29 00:44
循环清楚了~~~
感谢
#4
flyhomesars2008-10-30 15:57
貌似这是时序分析的问题~
add ax,bx
add ax,[bx]
add ax,[bx+si+5]
add [bx+si+5],ax谁能帮忙解释下~
或者有什么这相关的学习资料
发一下~万分感谢
446362111@
#5
cnhanxiao2008-11-01 01:13
add ax,bx
add ax,[bx]
add ax,[bx+si+5]
add [bx+si+5],ax
就是寻址。。。
为了清晰理解,你可以在debug下调试。

E:\>debug
-a
13C7:0100 mov bx,1000
13C7:0103 mov si,0500
13C7:0106 xor ax,0
13C7:0109 mov [bx],ax
13C7:010B mov [bx+si+5],ax
13C7:010E mov ax,0201
13C7:0111 add ax,bx
13C7:0113 add ax,[bx]
13C7:0115 add ax,[bx+si+5]
13C7:0118 add [bx+si+5],ax
13C7:011B int 3
13C7:011C
-

你自己单步调试一下,仔细观察相关寄存器和存储单元的变化。。。
1