小蜜蜂
你讓我滾,我滾了。你讓我回來(lái),對(duì)不起,滾遠(yuǎn)了...
級(jí)別: 論壇先鋒
![]() ![]() |
三菱程序疑問(wèn) MUL D10 K80 D20 DIV D20 D30 D40 MOV D40 D50 求助大家,第一行的乘法中D10乘以K80是生成D20還是D20 D21兩個(gè)?第二行的要用DIV還是DDIV?第三行要用MOV還是DMOV呢?拜托大家了,謝謝!還有從書(shū)上看是MUL D0 D2 D4,(D0)乘以(D2)等于(D5 D4),比如D0=8,D2=9,(D5 D4)=72,雖然72遠(yuǎn)遠(yuǎn)小于32767,但是也要存到(D5 D4)中,那上面我的程序是MUL D10 K80 D20 也就是(D21 D20)中了? |
---|---|
|
yeyhx
愛(ài)雖沒(méi)有說(shuō)出口, 但并不代表不愛(ài)!!!
級(jí)別: 略有小成
![]() |
第一行的乘法中D10乘以D80是生成D20還是D20 D21兩個(gè)? 答:乘法不管你D10和D80里面的數(shù)據(jù)是多大,其結(jié)果都會(huì)占用兩個(gè)寄存器,即D21 D20 如果用DMUL D10 D80 D20則占用(D23 D22 D21 D20) 第二行的要用DIV還是DDIV 答:兩個(gè)都可以用,不過(guò)如果用DIV則是低8位參與運(yùn)算。不過(guò)在這里用DIV就可以了 第三行要用MOV還是DMOV呢 答:MOV DMOV是傳送指令,如果第二行用DDIV那么第三行就要用DMOV了。 DMOV是運(yùn)算結(jié)果以32位輸出的。 結(jié)論: MUL D10 K80 D20 占用(D21 D20) 第二行DIV D20 D30 D40 占用(D41 D40) 第三行MOV D40 D50 D40=D50 以上GOOD LUCK ![]() |
|
---|---|---|
|
小蜜蜂
你讓我滾,我滾了。你讓我回來(lái),對(duì)不起,滾遠(yuǎn)了...
級(jí)別: 論壇先鋒
![]() ![]() |
太愛(ài)1樓的朋友了,不過(guò)第二行的,我還是有疑問(wèn),因?yàn)镈20經(jīng)過(guò)第一行的乘法后是(D20 D21),到第二行D20(D20 D21)是32位的,D30是16位的,D20除以D30為什么可以用16位的DIV呢?難道說(shuō)只有當(dāng)D20和D30都是32位的時(shí)候才要用DDIV?D20或D30有一個(gè)是16位的就不要用DDIV? ![]() |
---|---|
|
小蜜蜂
你讓我滾,我滾了。你讓我回來(lái),對(duì)不起,滾遠(yuǎn)了...
級(jí)別: 論壇先鋒
![]() ![]() |
還有如果第二行的D40是32位的(D41 D40),那么第三行為什么不要用DMOV呢?你不是說(shuō)DMOV是運(yùn)算結(jié)果以32位輸出的。D40就是32位的啊。還有當(dāng)D40是64位的(D43 D42 D41 D40)那第三行又該用哪個(gè)MOV呢? ![]() |
---|---|
|
向夢(mèng)飛
級(jí)別: *
![]() |
如果第二行用DIV那么結(jié)果就不是你想要的結(jié)果了,因?yàn)樵幢緛?lái)是32位你用16位的話只進(jìn)行了低16位運(yùn)算,用DIV只能運(yùn)算16位數(shù)據(jù)結(jié)果是32位低16位存商高16位存余數(shù). 用DDIV的話源1數(shù)據(jù)和源2數(shù)據(jù)都是32位.目標(biāo)就64位其中商占低32位余數(shù)占高32位 至于第3行用DMOV還是用MOV就看你要商還是要余數(shù)了 請(qǐng)多指教 |
---|---|
|
小蜜蜂
你讓我滾,我滾了。你讓我回來(lái),對(duì)不起,滾遠(yuǎn)了...
級(jí)別: 論壇先鋒
![]() ![]() |
6樓朋友,謝謝你了,第三行我商和余數(shù)都要用呢,我應(yīng)該用哪個(gè)MOV呢?或者如果我只要用商,用哪個(gè)MOV,又如果我只要用余數(shù),那么我應(yīng)該用哪個(gè)MOV?希望大家?guī)蛶臀疫@個(gè)菜鳥(niǎo),謝謝大家了! |
---|---|
|
小蜜蜂
你讓我滾,我滾了。你讓我回來(lái),對(duì)不起,滾遠(yuǎn)了...
級(jí)別: 論壇先鋒
![]() ![]() |
沒(méi)人幫我看看嗎? |
---|---|
|