將數值轉換為表示十進位制數的字串2

2022-05-15 01:38:30 字數 1415 閱讀 4618

王爽組合語言第二版

一、實驗要求

上一部分實現了把乙個word型別的資料轉換為表示十進位制數的字串,現有需求要實現dword型別資料的轉換,可用類似演算法實現。演算法參考

對dword型別的轉換可能出現除法溢位的問題,解決方法參考

二、程式介面

名稱:dtoc

功能:將dword型數轉變為表示十進位制數的字串,字串以0為結尾符

引數:(ax)=dword型資料的低16位

(dx)=dword型資料的高16位

ds:si指向字串的首位址

返回:無

三、實現**

dtoc:

push ax

push bx

push cx

push dx

push bp

push si

mov bp,0

dtoc_s0:

mov cx,10d

call divdw

push cx

inc bp

mov cx,ax

inc cx

loop dtoc_s0

mov cx,bp

dtoc_s:

pop bx

add bl,30h

mov ds:[si],bl

inc si

loop dtoc_s

mov byte ptr ds:[si],0

pop si

pop bp

pop dx

pop cx

pop bx

pop ax

ret四、測試**

assume cs:code,ds:data,ss:stack

data segment

db 10 dup (0)

data ends

stack segment

dw 16 dup (0)

stack ends

code segment

start:

mov ax,9768h;dx*16+ax=5937000

mov dx,5ah

mov bx,data

mov ds,bx

mov si,0

call dtoc             ;呼叫轉換的子程式

mov dh,8

mov dl,3

mov cl,2

call show_str      ;呼叫顯示字串的子程式

mov ax,4c00h

int 21h

code ends

end start

五、測試結果

將數值轉換為表示十進位制數的字串

王爽組合語言第二版,實驗10.3 一 實驗要求 編寫乙個子程式,實現將乙個數值轉換為表示十進位制數的字串 二 程式介面 三 演算法概述 1 可以反覆呼叫除法運算除以10d取餘數,直到商為0,可以獲得十進位制各位碼 例如 10 12666 6 10 1266 6 10 126 6 10 12 2 10...

將數值轉換為表示十進位制數的字串2

王爽組合語言第二版 一 實驗要求 上一部分實現了把乙個word型別的資料轉換為表示十進位制數的字串,現有需求要實現dword型別資料的轉換,可用類似演算法實現。演算法參考http blog.csdn.net lingdushanke archive 2009 12 28 5090736.aspx。對...

將十進位制數M轉換為N進製數

題目描述 給定乙個十進位制數m,以及需要轉換的進製數n。將十進位制數m轉化為n進製數。exp 輸入 輸入為一行,m 32位整數 n 2 n 16 以空格隔開,如7,2。輸出 為每個測試例項輸出轉換後的數,每個輸出佔一行。如果n大於9,則對應的數字規則參考16進製制 比如,10用a表示,等等 如111...