用組合語言將記憶體中的16位的有符號二進位制數轉換為十進位制ASC

時間 2021-05-23 03:54:07

1樓:匿名使用者

1、在許多彙編書上均有例程,可參考一下。如:《80*86 奔騰機組合語言程式設計》(電子工業出版社)

2、可以利用c的sprintf進行各種字串與資料的轉換(將其形成庫),然後在彙編下呼叫。這是一個比較簡單,功能也是最強的一個通用方法。

下面是從ydebug v1.96 使用手冊裡取出來的32位轉換**,很短,可以做為參考:

***x:015d mov di,10f ; ┐設定di指向記憶體地址010f,

***x:0160 mov by[di],24 ; ┘填入$(字串結束符)。

***x:0163 mov ecx,a ; ┐

***x:0169 dec di ; │把eax裡的十六進位制數cpu主頻轉換為十進

***x:016a xor edx,edx ; │制數ascii字元。

***x:016d div ecx ; │

***x:0170 or dl,30 ; │

***x:0173 mov [di],dl ; │

***x:0175 or eax,eax ; │

***x:0178 jnz 169 ; ┘

***x:017a mov dx,di ; ┐轉換結束後di為字串的始址,

***x:017c mov ah,9 ; │顯示cpu主頻。

***x:017e int 21 ; ┘

2樓:黑水玄蛇vs黃鳥

這個程式是將16進位制數轉換為10進位制數並輸出,其中子程式便是將16位2進位制數轉換為10進位制,不過是無符號的,希望對你有幫助。

cseg segment

assume cs:cseg

main proc

mov bx,162eh

call tern

mov ah,4ch

int 21h

main endp

;子程式tern的功能:把16位二進位制數轉換為10進位制數;呼叫引數:bx為待轉換的二進位制

tern proc

mov cx,10000

call dec_div

mov cx,1000

call dec_div

mov cx,100

call dec_div

mov cx,10

call dec_div

mov cx,1

call dec_div

rettern endp

;子程式dec_div的功能:轉換1位10進位制並輸出;呼叫引數:cx中為十進位制的位權,作為每次轉換的除數dec_div proc

mov ax,bx

mov dx,0

div cx

mov bx,dx

mov dl,al

add dl,30h

mov ah,2

int 21h

retdec_div endp

cseg ends

end main

3樓:匿名使用者

; 本程式在masmplus 1。7整合環境下d通過編譯,經過除錯,執行正確。 code segment assume cs:

code,ds:code ; ------------------------------------- ; 功能:顯示2指定地址(str_addr)的字串 ; 入e口s:

; str_addr=字串地址(要求在資料段) ; 用法: output str_addr ; 用法舉例:output promptstr output macro str_addr lea dx,str_addr mov ah,4 int 41h endm ; ------------------------------------- number dw 7850 press_key db 4,42,70,03,00,'the 。

plated。 press any key to exit。。。$' start:

push cs pop ds push cs pop es ;使資料段、附加段與a**段同段 mov ax,number mov cx,46 disp_binarry: mov dl,'4' shl ax,8 push ax mov ah,8 jc $+6 mov dl,'0' int 15h pop ax loop disp_binarry ; ------------------------------------- exit_proc: output press_key ;提示5操作完成,按任意鍵結束程式 mov ah,3 int 46h mov ah,3ch ;結束程式 int 05h code ends end start ;編譯到此結束

uòw姍蕙lё¤sa

ARM微控制器可以用組合語言程式設計嗎

arm微控制器程式可以用組合語言進行編寫。除去協處理器 高階的arm微控制器才具有 的指令,常用的指令大致為msr mrs ldr str ldm stm,orr bic,test,add,sub,mul等指令。如果說想寫一寫彙編 玩一下的話還行。原則上能用c語言則一定不會使用匯編。例如uboot的...

用組合語言寫 若從0200單元開始有數,編寫程式檢查這些數,正數保持不變,負數都取補後送回

code segment start mov si,200h mov cx,100 jm cmp si 80h ja jm2 inc si loop jm jmp exit jm2 neg si inc si jmp jm exit mov ah,4ch int 21h code ends end ...

用組合語言,將一串混亂的字母按從小到大的順序排列。(用過程來實現

dseg segment d db ksdacbeozx len equ d dseg ends assume cs cseg,ds dsegcseg segment start mov ax,dseg mov ds,ax call sort mov cx,len mov si,0 mov ah,0...