|
主题 : : 使用4条指令计算2的4次方 [待解决] |
回复[ 6次 ]
点击[ 595次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2010-03-25 01:19 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-03-16 21:08 |
我是新手,看到了2.3节,有一题是使用4条指令计算2的4次方
我是这样做的:
mov al,2
add al,al
add al,al
add al,al
不知道对不对,还请老师指导下. | | |
|
|
|
|
[第1楼]
[ 回复时间:2010-03-25 07:47 ]
[引用]
[回复]
[ top ] | |
荣誉值:307
信誉值:0
注册日期:2009-03-15 23:46 |
我觉得是正确的;像这类程序小段还可以用 debug 验证:
-a
13C0:0100 mov al,2
13C0:0102 add al,al
13C0:0104 add al,al
13C0:0106 add al,al
13C0:0108 int 3 ;int 3 的功能是:终止程序,显示寄存器的内容
13C0:0109
-g=100
AX=0010 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13C0 ES=13C0 SS=13C0 CS=13C0 IP=0108 NV UP EI PL NZ AC PO NC
13C0:0108 CC INT 3
- | | |
|
|
|
|
[第2楼]
[ 回复时间:2010-03-25 12:21 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-12-22 18:45 |
我也是刚刚学习汇编,也是那样做的,但感觉不像是算2的3次方,但又不会其他方法。
至少结果是对的,方法的优劣就不得而知了。
谢谢一楼的解答。 | | |
|
|
|
|
[第3楼]
[ 回复时间:2011-01-14 12:30 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-01-13 23:25 |
我觉得这样加最终结果是8哦 换成16进制也还是8 难道这个是2的4次方也就是16 换算成16进制为10
明显不对啊 求高手解释下怎么用条指令就可以得到正确的结果 | | |
|
|
|
|
[第4楼]
[ 回复时间:2011-01-14 12:34 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-01-13 23:25 |
我觉得应该这样写:
mov al,02H
add al,al ;al=4H
add al,al ;al=4H+4H=8H
add al,al ;al=8H+8H=10H=16 | | |
|
|
|
|
[第5楼]
[ 回复时间:2011-01-15 04:40 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-10-02 07:00 |
答案是:
mov ax,2d ;ax=十进制数2,d应该是代表十进制吧
add ax,ax ;ax=2+2=4
add ax,ax ;ax=4+4=8
add ax,ax ;ax=8+8=16
用的是AX哦,不是al. | | |
|
|
|
|
[第6楼]
[ 回复时间:2011-02-20 12:04 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-02-20 05:45 |
5楼的,你的这个d是错误的,计算机里面不支持十进制的程序。 | | |