小蜜蜂
你讓我滾,我滾了。你讓我回來,對(duì)不起,滾遠(yuǎn)了...
級(jí)別: 論壇先鋒
|
MUL D10 K80 D20 DIV D20 D30 D40 MOV D40 D50 求助大家,第一行的乘法中D10乘以K80是生成D20還是D20 D21兩個(gè)?第二行的要用DIV還是DDIV?第三行要用MOV還是DMOV呢?拜托大家了,謝謝! |
---|---|
|
zxc6688
工業(yè)自動(dòng)化是我們的目標(biāo)
級(jí)別: 略有小成
|
那要看你D10里的數(shù)據(jù)。假如相乘后超過了16位,用MUL就得不到你想要的結(jié)果,就要用DMUL。 MUL 16位 DMUL 32位 其他一樣。 |
|
---|---|---|
|
小蜜蜂
你讓我滾,我滾了。你讓我回來,對(duì)不起,滾遠(yuǎn)了...
級(jí)別: 論壇先鋒
|
但是我從手冊(cè)上看到 MUL D0 D2 D4,它是這樣解釋的 D0 16位的,D2 16位的,D4就是32位的(D5,D4),按手冊(cè)上說的凡是兩個(gè)16位的,不管大小,哪怕1乘以1等于1也要放到(D5 D4)中去,如果樓上的意思D0=1000 D2=1000,得100000,D0乘以D2就要用DMUL,這顯然和書上的不同嗎,因?yàn)镈0和D2都是16位的!! |
---|---|
|
zwz579
這系蝦米社會(huì),七透的比打拼的錢卡多。
級(jí)別: 略有小成
|
乘法的結(jié)果必定會(huì)要用兩個(gè) |
|
---|---|---|
|
小蜜蜂
你讓我滾,我滾了。你讓我回來,對(duì)不起,滾遠(yuǎn)了...
級(jí)別: 論壇先鋒
|
哦,謝謝了,那第二行的除法運(yùn)算D20就是(D20 D21)32位的,但是D30的是16位的,那么這個(gè)DIV前面要加D嗎?還有就是除的結(jié)果D40是指(D40 D41 D42 D43)嗎?還是只有(D40 D41)兩個(gè)?還有第三行的MOV又是否要加D嗎? |
---|---|
|
dv0429
級(jí)別: 略有小成
|
如果結(jié)果大于32767要在前面加D,如果在32767范圍內(nèi)的就不加加D,32767是16位寄存器最大的值,什么時(shí)候用16位還是32位主要是看結(jié)果會(huì)不會(huì)大于這個(gè)值 |
---|---|
|
小蜜蜂
你讓我滾,我滾了。你讓我回來,對(duì)不起,滾遠(yuǎn)了...
級(jí)別: 論壇先鋒
|
6樓的朋友,首先謝謝你,但是你講的和指令手冊(cè)上的不一樣,MUL D0 D2 D4,D0=16位的,D2=16位的,D4=32位的,照你這么說,這個(gè)乘法不是要用DMUL了,可是書上偏偏只用MUL,我是這樣理解的:只要乘數(shù)和被乘數(shù)是16位的,只要用MUL,不管你的結(jié)果是多大,只要乘數(shù)和被乘數(shù)是32位的,就要用DMUL,不管你的結(jié)果是多大,現(xiàn)在在這論壇里有好多說法,不知道要相信哪個(gè)人。 |
---|---|
|
小蜜蜂
你讓我滾,我滾了。你讓我回來,對(duì)不起,滾遠(yuǎn)了...
級(jí)別: 論壇先鋒
|
那如果用傳送指令MOV,D40如果是32位的,那么我們應(yīng)該這樣寫程序,DMOV D40 D50,那么如果D40是64位的(D43 D42 D41 D40),那么我們的DMOV是不能用了?而要用成批傳送指令BMOV D40 D50 K4,把(D43 D42 D41 D40)傳送到(D50 D51 D52 D53)?不知這樣對(duì)不對(duì)啊? |
---|---|
|
小蜜蜂
你讓我滾,我滾了。你讓我回來,對(duì)不起,滾遠(yuǎn)了...
級(jí)別: 論壇先鋒
|
沒人幫我看看嗎? |
---|---|
|