. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  小白发布 检查点2.1答案*_*  [待解决] 回复[ 27次 ]   点击[ 956次 ]  
mofajingshi
[帖 主]   [ 发表时间:2009-03-15 22:48 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-03-14 20:28
开篇之前首先感谢王爽老师写的汇编语言以及汇编网提供的论坛...如果说王爽老师的书是神兵利器,那么论坛就是磨刀石.....
文中出现的小白指小白菜,既菜鸟....太土,,,改成小白
链接a: http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=book&kind=1003&qkSg=3&qID=17380&readSg=1
链接b: http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=book&kind=1003&qkSg=2&qID=21582&readSg=1
链接c: http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=book&kind=1003&qkSg=2&qID=32719&readSg=1 
(1)
1  MOV AX,62627     AX=F4A3H    //C语言模运算,最简单方法,计算器.不过最好会,没有电脑怎么办..
   62627%16=3       3
   3914%16=10       A
   244%16=4         4
   15               F

2  MOV AH,31H       AX=31A3H    //MOV是传送指令其实就是把AX高8位AH清空,再把31H放进去,大多数小白(我也是小白)都会犯个错误就是用前面的F4+31 把这个指令当成了ADD指令,我也犯错-|-这个错误可以参考链接a
   
3  MOV AL,23H       AX=3123H    //3同2一样,不过有些连这个都不懂...明显的没把这本书看明白...具体问这个问题的可以参考链接b 里面还有squaaa公布的答案和我的一样*_*
   
4  ADD AX,AX        AX=6246H   //ADD是加法指令

5  MOV BX,826CH     BX=826CH

6  MOV CX,AX        CX=6246H
   AX=6246H
   
7  MOV AX,BX        AX=826CH
   BX=826CH

8  ADD AX,BX        AX=04D8H
   AX=826CH
   BX=826CH
   AX+BX=826CH+826CH=104D8H 超过16bit所能存储的最大值 去掉前面的1 即04D8H

9  MOV AL,BH        AX=0482H

10 MOV AH,BL        AX=6C82H
   
11 ADD AH,AH        AX=D882H
   
12 ADD AL,6         AX=D888H
   AL=82
   AL+6=82+6=88

13 ADD AL,AL        AX=D810H  //不会算的可以参考链接c 741117给出了很好的解释 比我的解释好,我懒嘛*_*
   AL=88
   AL+AL=88+88=110   超过8bit所能存储的最大值 去掉前面的1 即10

14 MOV AX,CX        AX=6246H  //如果学到这步了还不明白这个是什么的话,我建议把你人道毁灭了算了#_#(这个是带墨镜呵呵...)

(2)答案:
        mov ax,2  
        add ax,ax  
        add ax,ax  
        add ax,ax
mofajingshi
[第1楼]   [ 回复时间:2009-03-15 23:08 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-03-14 20:28
国际惯例沙发自己做
ilove
[第2楼]   [ 回复时间:2009-03-16 10:36 ]   [引用]   [回复]   [ top ] 
荣誉值:14
信誉值:2
注册日期:2008-10-19 21:37
好帖子,顶楼主~
ddspace
[第3楼]   [ 回复时间:2009-03-16 17:39 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2009-03-14 15:44
编程计算2的四次方 那个咋做了 就那几条命令 只有加 没有 乘法啊~~~~~····
mofajingshi
[第4楼]   [ 回复时间:2009-03-16 21:27 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-03-14 20:28
目前我们还没有学到所谓*的指令呀,,,,,只能用ADD来实现这样的一个结果,,,,,目前我们就学到MOV ADD这2条指令而已
jesson
[第5楼]   [ 回复时间:2009-03-27 19:55 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-03-25 18:37
谢谢了哦,我要继续努力!
hou0912
[第6楼]   [ 回复时间:2009-04-01 16:17 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-03-08 00:10
很详细!不错!

MOV是传送指令,不是ADD
zhshrzy
[第7楼]   [ 回复时间:2009-04-20 12:19 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-04-19 12:53
很简单啊,我看了二遍书就会做了。。。呵呵。
只要心细就好了,到这个检测点,只要小学水平就会做了,除了第二题。。
tiny101
[第8楼]   [ 回复时间:2009-04-21 15:49 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-04-18 22:26
Thank you !
hehexiaobai
[第9楼]   [ 回复时间:2009-05-14 10:22 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-06 23:32
不错~~  都是对的 呵呵
caianhua1986
[第10楼]   [ 回复时间:2009-05-16 05:34 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-16 04:02
真的是很好的论坛啊
mosoft
[第11楼]   [ 回复时间:2009-05-17 07:50 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-11 17:21
第二题求2的4次方;
楼猪给的答案错的吧,好像是计算2+2+2+2=8了
而2的4次方=16!!!
楼猪,再想想吧.
mosoft
[第12楼]   [ 回复时间:2009-05-17 07:59 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-11 17:21
自己抛砖引玉下:
2的4次方,就是2*2*2*2=1*2*2*2*2;而乘2,可以看做移位1位,4次方刚好移位4次,恰好把AL数据移到AH了
MOV AL,1
MOV AH,AL
MOV AL,0
此时,AX刚好为2的4此方!!!
mosoft
[第13楼]   [ 回复时间:2009-05-17 14:12 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-11 17:21
自己调试了下,原来楼主的第二题好像也对哦
第一次加法:2+2
第二次:4+4
第三次:8+8
结果16,哈哈
conca
[第14楼]   [ 回复时间:2010-07-09 20:09 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-09 19:46
你别搞笑好不好
conca
[第15楼]   [ 回复时间:2010-07-09 20:09 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-09 19:46
我说的是11楼
masmaster
[第16楼]   [ 回复时间:2010-07-09 20:29 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
自己抛砖引玉下:
2的4次方,就是2*2*2*2=1*2*2*2*2;而乘2,可以看做移位1位,4次方刚好移位4次,恰好把AL数据移到AH了
MOV AL,1
MOV AH,AL
MOV AL,0
此时,AX刚好为2的4此方!!!
------------------
回复:?????????
lin1712
[第17楼]   [ 回复时间:2010-07-12 14:36 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-06-01 10:03
回复:[第16楼]
------------------
乘方本来是应该考虑位移的,但我一直没想出最终的办法来。12楼的做法有几处错误。
1、MOV AL,1此时AL值是十进制的1而不是二进制的,虽然正好相等,但应该写成这样 MOV AL,1B。
2、AH、AL都是8位而不是4位!所以最终结果还是错的。

2的4次方,用加法算出来虽然结果对但只是巧合。不知道楼上的高手masmaster有没有什么更好的办法?
lin1712
[第18楼]   [ 回复时间:2010-07-12 14:41 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-06-01 10:03
少说了一句话,只有2进制下乘2才能用左移一位表示,AL值为十进制1,左移就是乘十了,所以要强调 MOV AL,1B。
masmaster
[第19楼]   [ 回复时间:2010-07-12 16:11 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
【十进制数左移1位相当于X10,二进制左移1位相当于X2,十六进制数左移1位】
2的四次方是16
如果al的初值是1的话, 那么要实现2的四次方得多用几次add:
mov al,1
add al,al
add al,al
add al,al
add al,al
以后要学到移位指令就简单啦
shisqf
[第20楼]   [ 回复时间:2010-07-14 15:42 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-14 15:30
我做的也是这个答案
kyolxs
[第21楼]   [ 回复时间:2010-07-17 16:23 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-03-09 15:55
mov cx,ax    老了。。眼花了。。写成 3123H....
liuquanhao7232
[第22楼]   [ 回复时间:2010-07-17 17:31 ]   [引用]   [回复]   [ top ] 
荣誉值:8
信誉值:0
注册日期:2010-07-12 08:47
这个你就错了。。你下面的是对的。但2楼也是对的。你看啊。
  mov ax,2   ;AX=2
  add ax,ax  ;ax=ax+ax=4,此时AX=4了。
  add ax,ax  ;ax=ax+ax=4+4=8,因为上一步的AX已经为4了,这一步AX=8了。
  add ax,ax  ;ax=ax+ax=8+8=16,上一步的AX为8,所以这一步AX+AX=16.
你下面的做法很好。今天知道了题目的解题方法是不只一种的。以后要多想想其它方法。
liuquanhao7232
[第23楼]   [ 回复时间:2010-07-17 17:32 ]   [引用]   [回复]   [ top ] 
荣誉值:8
信誉值:0
注册日期:2010-07-12 08:47
不,不是2楼。是楼主。。。。看错了。是第2题。。。。
liuquanhao7232
[第24楼]   [ 回复时间:2010-07-20 13:55 ]   [引用]   [回复]   [ top ] 
荣誉值:8
信誉值:0
注册日期:2010-07-12 08:47
今天回想了一下。。发现16楼错了。,

MOV AL,1 
MOV AH,AL 
MOV AL,0 


ah,al都是8位寄存器。。如果这么给的话。。相当于进了8位。。是2的8次方了。。
dark1ff
[第25楼]   [ 回复时间:2010-07-23 14:54 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-10 22:57
感谢LZ教育!
silencer
[第26楼]   [ 回复时间:2010-09-04 16:06 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-09-03 15:44
...看到高手用位移,我还是不明白,自己慢慢学。希望以后会明白。
a110164
[第27楼]   [ 回复时间:2010-09-06 10:50 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-15 18:49
到现在只学了加法!
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved