想請教組語寫法

顯示結果從第 1 筆 到 6 筆,共計 6 筆
  1. #1
    秘密小左 recall15 的大頭照
    註冊日期
    2006-12-04
    所在地區
    ADSL 2M/512
    討論區文章
    4

    想請教組語寫法

    這學期有一門課程是組合語言
    版子上的前輩有沒有人學過的呢?

    ex:
    Z=X+Y
    要從鍵盤上keyin兩個有號數(-128 ~ 127)
    然後在螢幕上顯示出
    X、Y、Z三個有號數的
    2進位、八進位、16進位

    用巨集寫的話應該會比較好
    只是我卡在16進位的巨集
    比方說出現10→應該要顯示A
    可是我無法順利寫出程式
    有前輩可以教敎我嗎?
    ...謝謝 ^^

    我用的是NASM
    ...先謝謝前來指教的前輩



  2. #2
    會員
    註冊日期
    2006-01-30
    所在地區
    FTTB 60KK/20KK
    討論區文章
    472

    回覆: 想請教組語寫法

    組語上的"巨集"跟一般常碰到是不一樣的,雖說定義一樣。
    ASM上的巨集,可稱之為"自創指令集",把多個指令包起來,定個假指令名,而在程式中就使用這假指令,在組譯後這些"自創指令集"會被展開。
    而你卡的地方,用查表法是最簡單的,如何寫見 http://blog.xuite.net/asccpu/CPU/112853 這。

  3. #3
    秘密小左 recall15 的大頭照
    註冊日期
    2006-12-04
    所在地區
    ADSL 2M/512
    討論區文章
    4

    回覆: 想請教組語寫法

    自己試了很久...都還是弄不出來
    就想說弄簡單一點
    先把兩數相加
    再分別表示2、8、16進位的和(先打出顯示2進位就好,code頗長)
    若兩數相加為10
    螢幕只會顯示出→1010
    我必須怎麼改,才會顯示"00001010"

    ORG 0100H
    JMP start
    msg DB 'keyin a number:', '$'
    s TIMES 80 DB ' '

    msg2 DB 'sum(2)=','$'
    msg8 DB 'sum(8)=','$'
    msg16 DB 'sum(16)=','$'

    x DW 0
    y DW 0
    z DW 0
    a DW 2
    b DW 8
    c DW 16

    msgsum DB 13, 10, 'sum='
    sumstr DB ' ', '$'

    %include "C:\howasm\mymacro\readstr.mac"
    %include "C:\howasm\mymacro\strtoi.mac"
    %include "C:\howasm\mymacro\itostr.mac"
    %include "C:\howasm\mymacro\dispi.mac"
    %include "C:\howasm\mymacro\newline.mac"

    start: MOV DX, msg
    MOV AH, 09H
    INT 21H
    readstr s
    strtoi s, '$', x

    newline

    MOV DX, msg
    MOV AH, 09H
    INT 21H
    readstr s
    strtoi s, '$', y

    MOV AX, WORD [x]
    ADD AX, WORD [y]
    MOV WORD [z], AX
    itostr z, sumstr, '$'
    MOV DX, msgsum
    MOV AH, 09H
    INT 21H

    newline

    MOV DX, msg2
    MOV AH, 09H
    INT 21H
    MOV DX, 0
    MOV AX, WORD [z]
    MOV CX, 0
    loop1:
    DIV WORD [a]
    PUSH DX
    INC CX
    MOV DX, 0
    CMP AX, 0
    JE next1
    JMP loop1
    next1:
    POP DX
    ADD DL,30H
    MOV AH, 02H
    INT 21H
    LOOP next1

    newline
    MOV AX, 4c00H
    INT 21H

  4. #4
    會員
    註冊日期
    2006-01-30
    所在地區
    FTTB 60KK/20KK
    討論區文章
    472

    回覆: 想請教組語寫法

    看了半天......
    1.程式起頭寫法錯誤,那是寫 COM檔的方式,不是EXE檔,就算是寫COM檔,程式結束的方式也錯。所以上述程式應該組譯不過,就算過了也RUN不了。
    2.貼ASM源碼,不能像貼高階語言程式一樣,在ASM程式中,你要完整貼出,包含所用的巨集部份,上述程式沒有,沒法得知這些部份是如何運作的。
    3.如果沒猜錯,你對ASCII及BCD碼認識不深。
    4.除法部份你可以考慮寫成副程式,如此8,16進制都可使用。
    5.對初學者而言多畫流程圖及DEBUG。流程圖把你的想法轉成細步動作,再以此選合用的指令來寫,這是與高階不同的。

  5. #5
    fw3
    fw3 目前未上線
    恭喜發財 fw3 的大頭照
    註冊日期
    2000-11-10
    討論區文章
    1,320

    回覆: 想請教組語寫法

    網友反應,本篇討論應該放在軟體討論區比較恰當,
    故移動,請有興趣的網友繼續討論!!


    只要涉及 "藍" , "綠" , "扁" , "連" , "宋" , "馬"...等政治性文章或政治人物人身攻擊等文章一律砍


  6. #6
    散人 rushoun 的大頭照
    註冊日期
    2001-07-29
    討論區文章
    5,920

    回覆: 想請教組語寫法

    抱歉!我不是來回答問題的,真是很抱歉,只是來憑弔老朋友的.....
    真是令人懷念的簡短英文機器語言啊!尤其是那個INT 21....
    ========================================
    用智慧處理事情,用慈悲對待他人。(節錄 聖嚴法師與人文對話一書內容)

類似的主題

  1. 【求助】請教高手有關批次檔的寫法
    作者:zerokiller 所在討論版:-- Windows 討 論 版
    回覆: 27
    最後發表: 2008-08-03, 05:02 AM
  2. 想請教各位先進
    作者:Sherlock 所在討論版:---- ADSL 連 線 測 速 版
    回覆: 0
    最後發表: 2006-06-12, 02:29 PM
  3. 【問題】請教有關變數的寫法?
    作者:thi 所在討論版:-- FreeBSD & Linux 討 論 版
    回覆: 1
    最後發表: 2002-08-11, 11:23 PM
  4. 【問題】請教fastab裡面...把windows資料夾掛載的寫法?
    作者:jollinman 所在討論版:-- FreeBSD & Linux 討 論 版
    回覆: 5
    最後發表: 2002-08-08, 07:44 PM

 

此網頁沒有從搜尋引擎而來的訪客

發表文章規則

  • 不可以發表新主題
  • 不可以回覆文章
  • 不可以上傳附加檔案
  • 不可以編輯自己的文章
  •