回覆列表
  • 1 # 雨過天晴

    ; 下面的程式是16位彙編,以十進位制數89158為例,編譯透過,執行正確。

    ; Program Name: Dec_ASCII.asm

    Dec_ASCII SEGMENT

    ASSUME CS:Dec_ASCII,DS:Dec_ASCII

    ORG 100H

    Start: jmp Begin

    ASCII DB 5 dup(" ") ;儲存十進位制無符號數的ASCII

    ASCII_End DB "$" ;字串結束標誌

    Decimal DW 89158 ; 十進位制無符號數,最大65535。

    Begin: lea di,ASCII_End ; 字串尾地址

    dec di

    mov bx,10 ; 用於除10,取商數和餘數

    std ;設定變址暫存器變址方向

    mov ax,Decimal ; 取十進位制無符號數

    ASCII_Ctr: xor dx,dx

    div bx ; 除10,取商數和餘數

    xchg ax,dx ;交換商數和餘數

    or al,30h ;轉換成ASCII碼

    stosb ;儲存ASCII碼

    mov ax,dx ;把商數放入ax中

    cmp ax,0

    ja ASCII_Ctr ;商數大於0,繼續取餘數

    lea dx,ASCII ;字串首地址

    mov ah,9 ; 顯示結果

    int 21h

    Exit_Proc: mov ax,4c00h ;結束程式

    int 21h

    Dec_ASCII ENDS

    END Start

  • 中秋節和大豐收的關聯?
  • 人類為什麼不把垃圾倒入火山中進行焚燬?難道不是一舉兩得?