![]() |
||
Amateur Member
![]() 加入日期: Aug 2000 您的住址: 公海
文章: 45
|
![]() 剛學組合語言把書本範例改過寫出
X=(A*3+B*4)/E-2 引用:
編譯出來會有顯示 MOV CX,E 這一段有問題,書上原範例是DW...改DB後被除數是AX商AL餘AH ,想了很久找不出解,不知道站上有誰知道^^ 引用:
麻煩大家解答了,謝謝 此文章於 2004-12-31 05:55 PM 被 小P 編輯. 原因: 再改一次 |
|||||||||
![]() |
![]() |
Basic Member
加入日期: Feb 2002
文章: 27
|
A*3+B*4
--------- =X E-2 我改了一下,可以編譯了 不過功能沒出來 我看不懂你題目的意思,說明白一點好嗎 X是A*3+B*4嗎 E-2又是幹麻的
__________________
we cannot know the future because we cannot know the present.......uncertainty principle |
||
![]() |
![]() |
Amateur Member
![]() 加入日期: Aug 2000 您的住址: 公海
文章: 45
|
![]() 引用:
其實是算出 X=A*3+B*4/E-2 (我編輯過了,還是有人看不懂....呵呵) 然後用DUBUG看記憶體的變化....X是結果,E-2是E DB 5減2 ....wattlu兄能把改的地方講出來嗎...不然我又要自己摸了...謝謝 |
|
![]() |
![]() |
Basic Member
加入日期: Feb 2002
文章: 27
|
基本上,我覺得我好像幫不上什麼忙,先說聲抱歉
我不明白DW改成DB的用意是? MOV CX,E這個用法是錯誤的,錯在哪?錯在你定義E DB 5 你自己想想看MOV CX,AL這種寫法成立嗎? 答案是不成立,8bit的東西不能直接放到16bit 我把我想出來的方法給你參考一下,不保證有用,因為我不會用DEBUG=.=,所以沒辦法驗證 用CBW指令:把AL轉成有號數AX IMUL A ADD AX,CX ADC DX,BX ...mov bx,ax ;暫存,因要用到al ...mov al, e ...cbw ;al轉成ax 8bit放到16bit ...mov cx,ax ;這一步完成你之前的mov cx,e ...mov ax,bx ;放回 SUB CX,2 IDIV CX MOV D,AL MOV DR,AH .EXIT END 再次強調一下,我不明白你到底要將原本程式用什麼的寫法去改寫? 單純是將e dw 5 改成e db 5嗎? 因為我不知道你要用什麼去改寫原本程式...所以想的方法可能幫不上忙
__________________
we cannot know the future because we cannot know the present.......uncertainty principle 此文章於 2004-12-31 07:12 PM 被 wattlu 編輯. |
![]() |
![]() |
Amateur Member
![]() 加入日期: Aug 2000 您的住址: 公海
文章: 45
|
![]() 引用:
謝謝你的回答^^,我就是要把原本的DW改成DB來加減乘除,至於CX是原本範例程式的內容,我只把他當暫存器沒考慮是否是16位元....那MOVZX這個指令沒有用嗎?這個指令不是把八位元轉成16位元嗎~我知道為什麼CX是WORD了.....(新手別見怪) |
|
![]() |
![]() |
Basic Member
加入日期: Feb 2002
文章: 27
|
我會用DEBUG了
我之前打的程式有溢位、有錯 晚點再幫你修改 我要去烤肉了
__________________
we cannot know the future because we cannot know the present.......uncertainty principle |
![]() |
![]() |
Elite Member
![]() ![]() ![]() ![]() ![]() 加入日期: Nov 1999 您的住址: Arlington, Texas
文章: 6,045
|
組合語言有夠難懂的,說是火星文還真的一點都不為過啊........
__________________
My PC: AMD Athlon64 3500+ S939 2200mhz Corsair DDR500 512MB*2 Abit AV8 K8T800 Pro Hitachi HDS72251 6VLAT80 SCSI Disk Device 160GB/8MB Buffer Pioneer DVD-RW DVR-110D LITE-ON LTR-52327S USB2.0 CD-RW PNY Verto GeForce 6800 GT 256MB Linksys Wireless-G PCI Adapter Creative Sound Blaster Audigy 2 ZS ViewSonic A71f+ ViewSonic VX2025WM Creative Inspire P5800 ASUS A2428PDV Microsoft XBOX 360 |
![]() |
![]() |
Amateur Member
![]() 加入日期: Aug 2000 您的住址: 公海
文章: 45
|
![]() 引用:
謝謝...我已經改好了 引用:
因為BX在那一段以後就沒有用了,所以使用它的低位元組BL.....不知道這樣對不對...呵呵^^還沒測試 |
||
![]() |
![]() |
Amateur Member
![]() 加入日期: Aug 2000 您的住址: 公海
文章: 45
|
![]() 引用:
改出來了...wattlu兄請查看是否對^^ 此文章於 2004-12-31 09:30 PM 被 小P 編輯. |
|
![]() |
![]() |