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