..磊●﹖ 发表于 2011-11-30 20:40:56

小甲鱼老师进来看下我的思路对不对!

看了老师的课进入2.2检测点的检测时,看到课本的题目字面意思理解了,但换算方式还是不懂,所以根本不知道填什么答案进去。最终无奈只好看老师的答案和解说,当然我并不是只看完答案写上去就OK了,看了之后开始思考如何得到这个值的。以下放出我思考的结果·请 小甲鱼老师看下 思路是否正确! 另贴上2.1老师另外要求思考的3的4次方的计算方式!希望老师看下并做出评价。

检测点2.1 小甲鱼老师要求的3的4次方的计算方式。

mov ax,3ax=3
mov bx,ax bx=3
add ax,ax ax=6
add ax,bx ax=9
mov bx,ax bx=9
add ax,ax ax=18
add ax,bx ax=27
mov bx,ax bx=27
add ax,ax ax=54
add ax,bx ax=81
mov bx,0bx=0

计算方式比较本•边打计算器边对命令!。。下面贴出我的计算方式!看了别笑哦!

2*2*2*2=16
mov ax,2   ax=2
add ax,ax   ax=ax+ax=4
add ax,ax   ax=ax+ax=4+4=8
add ax,ax   ax=ax+ax=8+8=16?

3*3*3*3=81
不知道对不对请老师点评下!

下面放出2.2的我的理解·答案我就不放了。老师的网站上可以找到。


答题理解:第二题:当内存20000H 单元中放了一个数据,现在给出段地址为SA 若想用便宜地址寻到此单元,则SA应满足的条件是:最小=?最大=?!

看完数和视频后看到题目当场晕了•看得懂字面的意思•但不懂如何计算,最后无奈只好看老师的答案了。看了答案也思考了很久才理解,暂时只理解第二题所以写上来!
据我理解是这样的。偏移地址的单位为64K 也就是从 0-FFFF那就可以反过来计算•计算方法如下:
20000-FFFF=10001/10=1000 ?错误了。因为不是16的倍数所以。如果你不懂的话你再反过来计算下。
1000*10+FFFF=1FFF 少了一位数了懂么?所以最大只可以从FFF0 开始。计算如下:
20000-FFF0=10010 / 10 =1001 所以最小为1001H   16进制嘛。
那最大也好计算了看下列方式:
20000-0=20000/10=2000 答案就出来了最大为2000H16进制哦。
因为偏移地址最少位是 0 嘛!



第一题:看懂第二题后第一题也很好理解了。关键在于 偏移地址 0 – FFFF 这个是重要的地方!
计算方式可以是这样的•课本给出的条件是:段地址 = 0001H 仅用偏移地址是改变来改变内存读取!那我们就这样。打开计算器 输入1 * 10 + 0 = 10H 五位。补充3个0进去=00010H
这里说下上面的计算里面每个数的代表 1 = 段地址。(因为课本给出的段地址 = 0001H嘛。0不输入在计算器中就 = 1了。) 10 代表 段地址X16嘛。 0 代表偏移地址 (注:偏移地址是从 0 – FFFFF 这段的哦!最小值为 0 最大值为 FFFF )

然后再次计算 1 * 10 + FFFF = 1000FH正好五位。最后得出结果 = 范围为00010H – 1000FH

小甲鱼老师不知道我这样理解对与错请老师也一并点评下吧!

api 发表于 2011-11-30 21:21:33

你的思路是对滴,就是这样。
2.1如果只能用add来计算的话,只用一个寄存器就够了3+3+3+3....+3=81 哈哈 你懂的

..磊●﹖ 发表于 2011-12-1 03:42:39

谢谢了!!嘿嘿·就是想看下自己的思路对不对·你知道的学编程思路很重要!如果思路错了可能学的就白学了!
页: [1]
查看完整版本: 小甲鱼老师进来看下我的思路对不对!