菜鸟97 发表于 2015-1-30 06:00:11

小学文化的我学汇编,第一步进制计算

1,mov ax,62627   AX=F3A3H给AX赋值62627然后转换16进制为F3A3
2,mov ax,ah,31Hax=31A3H将31H移动到AX高位也就是前两位的F3,这样就变成了31A3
3,mov ax,al,23hax=3123   将23H移动到AX低位也就是后两位的A3,这样就变成了3123
3,add ax,ax      ax=6246   将AX数值相加也就是两个3123的数相加,那么就是3123+3123+6246
5,mov bx,826CH   bx=826CH给BX赋值826CH 现在BX的数值为826CH数值
6,mov cx,ax      cx=6246   将AX的数值赋值给CX 然后CX的数值为6246
7,mov ax,bx      ax=826CH将BX的数值替换到AX中 然后AX的6246数值换成826CH
8,add ax,bx      ax=04D8   很难理解826CH+826CH为什么会等于04D8?。
由于我是小学文化很难理解进制是什么,查百度看了很多资料,就是没看懂。后来我返回了这个简单的考题,看到第一道题才恍然大雾,第一题62627赋值后为什么会变成F3A3? 然后我研究怎么才能把62627这个数值计算成F3A4 拿着进制转换工具,尝试的转换62627为16进制,结果答案变成了F3A3。顺便也让我理解了826C两个相加为什么会变成03D8。我用计算器将826C转换成10进制数值,这样算出的答案是33388.然后在将33388相加。也就是33388+33388=66710。没错答案就是66710 这样我就得到了答案,然后把66710转换到16进制数值为104D8。1去掉就是答案了。可能你跟我一样只有小学的文化,这种看不懂的相加肯定会很迷茫,只要多尝试把答案分解。通过计算器来转换数值,就不难理解826C+826C为什等于04D8了

9, mov ah,bh AX=0482将第八题BX高位数值BH替换到AL变成了04
10, mov ah,bl AX=6C82将第八提BX低位移动到AX高位AH变成了6C
11add al,al AX=D882H 将第十题6C转换10进制得到答案为108,两个高位相加108+108+216在转换16进制
12add al,6AX=D888将第十一题低位2添加6的数值 很难理解为什么非要和后面的2相加。似懂非懂
13add al,al AX+D810将第十一题88以16进制相加得到答案为110 去前面的1等10
14mov ax,cs AX=6246H 将六题CX数值替换到AX里 AX现在的数值为6246H

所有数值统计
BX数值826CH
AX数值6246H
CX数值6246H

以上是个人对比答案,了解算法所写出的基础知识,学到第八题的时候卡住了,找了很多资料,反复查看,最终以自己无限折腾的精神半了解进制的知识,其中11题让我思考了好久,D882是108+108所得答案,可是问题是,转换到16进制以后变成了D882。反过来看,288反过来计算,2作为百位数答案,而88相加敲好16.不用进制来转换计算那就是 216.这其中发生很多难以理解的算法,我在想是不是可以不靠转换进制数值 直接用16进制算法 算出10进制的216答案泥? 216转换16进制就是D882H,

菜鸟97 发表于 2015-1-30 06:02:02

最后一题打错了数值,是CX 不是CS 让各位大哥见笑了

黄泉 发表于 2015-1-30 07:38:28

哈哈

kitefall 发表于 2015-1-30 08:33:52

不知道你要做什么,但是希望你可以坚持。另外想说,兴趣不是生活,生活可以是兴趣。加油~

feiyingbuke 发表于 2015-3-14 17:44:40

62627转换十六进制是F4A3,33388+33388=66776,楼主写错了

yulin3192 发表于 2015-3-16 10:36:17

9, mov ah,bh AX=0482将第八题BX高位数值BH替换到AL变成了04
这个ah应该写错了吧

vank 发表于 2015-5-27 05:14:49

就是来顶 支持

fast 发表于 2015-6-20 03:21:01

{:1_1:}

296661239040218 发表于 2018-7-3 19:36:24

为什么要把6C转到十进制呢?
页: [1]
查看完整版本: 小学文化的我学汇编,第一步进制计算