|
主题 : : 关于检测点2.2 的问题 [待解决] |
回复[ 6次 ]
点击[ 666次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2011-04-23 18:04 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-04-15 20:16 |
0001H*16等于多少呢?为什么?加上0000H呢?FFFFH是多少?F在16 进位制里不是表示15吗?0001H*16是 不是在后面加上个0就可以?那么00010加FFFFH是怎么运算的呢?EA取最大值时,SA=2000H-FFFFH/16=1001H
EA取最小值时,SA=2000H-0H/16=2000H
怎么算出来的 ?为什么不是减0000H | | |
|
|
|
|
[第1楼]
[ 回复时间:2011-04-29 10:13 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-04-28 17:19 |
0001H*16=00010H,为什么?是因为16进制中,*16相当与10进制*10一样的概念。16进制逢16进1,10进制逢10进1,2进制逢2进1。
一次问的太笼统,糊涂了。就回答第一个问题吧。。 | | |
|
|
|
|
[第2楼]
[ 回复时间:2011-05-07 00:16 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-05-06 06:09 |
我的理解:0001H*16=0001H*10H=0010H。同理:0001B*2=0001B*10B=0010B,0001*10=0010。 | | |
|
|
|
|
[第3楼]
[ 回复时间:2011-05-27 20:45 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-05-27 19:57 |
0001H*16等于多少呢? = 0010H。这个应该没有问题吧,十六进制逢十六进一。
加上0000H呢? 这个不知道你想表达什么意思。但是要是段加上寻址的话那就是表示00010:0000这个内存上的内容。
FFFFH是多少?这个涉及到补码之类的问题,可以理解为带符号数,但是看楼主的表达的意思是指字节单元的最大值。就好像你用windows计算一下十进制-21用十六进制等于FFEB一样。有符号数在后面学到标志符的时候就应该懂了。
至于下面的。看一下内存寻址小结然后自己抽象理解一下应该能明白。。。。 | | |
|
|
|
|
[第4楼]
[ 回复时间:2011-06-07 16:20 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-06-06 00:02 |
如果前面是数字则不需要加0 如 1111H 9824H 234DH
如果是字母且这个数是正数则要加0 如 0D34H D34H是不对的 | | |
|
|
|
|
[第5楼]
[ 回复时间:2011-06-08 11:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-06-06 17:11 |
16进制乘以16,不就相当于10进制乘以10吗,进位就是了。
1001h不是直接减出来的。2000H-FFFFH=10001h,要是段地址最小只能取1001h,总不能取1000.1h对吧? | | |
|
|
|
|
[第6楼]
[ 回复时间:2011-07-22 11:46 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-07-04 17:09 |
書上說,如果沒有特別進位標示,就是十進位
0001h*16 這個16 是十進位
更簡單的說就是16個0001h加起來的話(在匯編中也沒有乘的概念,我看都是加來加去)
所以一開始是0001h,加了1變成0002h .... 加了14變成 000eh 加了15 變成000fh,加了16變成0010h
加上 0000h之後是多少? 0000h就是零,什麼數加了後都不會變
FFFFH是多少?F在16 进位制里不是表示15吗? 是的
所以ffffh是15*(16^3)+15*(16^2)+15*(16^1)+15*(16^0)
那么00010加FFFFH是怎么运算的呢?
先來想一下,fh+1h是多少?剛剛上面演示過了,是 10h,所有的東西都是從這裡推導出來的,不信請看下面拆解
那ffh+1h是多少?你可以看成是(要將ffh看成是f0h+fh,這二個值是一樣的)
(f0h+fh)+1h=f0h+(fh+1h)=f0h+10h=10h*(fh+1h)=10h*10h=100h
有時侯搞不懂我都是用數學慢慢推出來,
其實我最想回答的是第二題,
我將題目簡化如下,給定二值Sa 與 偏移地址(都是整數),其定義域為
0<=sa<=2^16-1 0<=偏移地址<=2^16-1
在下列式子成例的情況下,
SA*16+偏移地址=20000H
求SA的最大最小值。
解:
sa*16+偏移地址=20000h
sa=(20000h-偏移地址)/16
那我們知道
0<=偏移地址<=ffffh=(2^16-1)
現在我們要將偏移地址變成sa所以開始下面動作
全部乘上-1
-ffffh<=(-1)*偏移地址<=0
全部加上20000h
20000h-ffffh<=20000h-偏移地址<=20000h
10001h<=20000h-偏移地址<=20000h
通通除以16
1000.1h<=(20000H-偏移地址)/16<=2000h
就是
1000.1h<=sa<=2000h
根據題意,
sa 是整數
所以sa的變動範圍是
1001h<=sa<=2000H | | |