彙編 將輸入的字元數字轉化為二進位制資料

2021-08-11 01:23:33 字數 1595 閱讀 6658

assume cs:code,ds:data

data segment

buffer db 6,?,6 dup(?)

c10 dw 10

data ends

code segment

start: mov ax,data

mov ds,ax

mov ah,0ah

int 21h

mov ax,0

mov cl,buffer+1

mov ch,0

lea bx,buffer+2

s: mul c10

mov dl,[bx]

and dl,0fh

add al,dl

adc ah,0

inc bx

loop s

mov ax,4c00h

int 21h

code ends

end start

buffer db 6,?,6 dup(?):資料段在記憶體中定義7個位元組的資料buffer,第乙個6表示輸入的數字最大長度為6

mov ah,0ah int 21h:鍵盤輸入到緩衝區,ds:dx=緩衝區首位址,(ds:dx)=緩衝區最大字元數 ,傳入引數:(ds:dx+1)=實際輸入的字元數

mov cl,buffer+1:將輸入的字元數用來作為迴圈的次數

mul c10: mul c10(10h) 等於進製 十六進製制資料乘10h即進製

mov dl,[bx] and dl,0fh:比如

「1」ascll碼:0011_0001

與0f(0000_1111) and 得到 0000_0001

即把字元1變為了數字1

add al,dl adc ah,0:把轉化後資料放入ax中,迴圈第一次時第一次ax是0,所以直接相加,第二次時之前的位進製後與再次的到的各位相加

執行:輸入1234

第一次將字元1 變為數字1 則ax暫存器:

進製後 1變為10 則ax暫存器(000a):

第二次將字元 2 變為數字2 即 總共將12 轉換為

數字12 則ax暫存器(000c):

最終結果 將字元1234 轉化為數字1234 則ax暫存器(04d2)

將數字轉化為字串

將數字轉化為字串 方法一 include int main void temp 0 scanf d num number num do while number 0 string i 0 printf number d,位數是 d位 n num,i 統計出位數 for j 0,i j i 2 j i...

用彙編實現數字轉化為字串的函式itoa

為了更加清楚地讓我們知道,如何使用組合語言來實現這個函式,下面先以用c語言自己實現乙個itoa函式,再來說明使用組合語言實現方法及思想。因為無論是用c語言還是使用組合語言,其實現思想和方法都是一樣的,只是描述的語言不同。但是我們都比較熟悉c語言,而對組合語言並不是那麼的熟悉,所以為了讓我們更加好地理...

將 u的字串轉化為中文

筆者這裡涉及到這麼乙個場景 本地儲存了一張,路徑為 python伺服器接收到乙個經過utf 8編碼的json字串,內容是上述路徑。但是,我在print該路徑時,顯示如下 a c users administrator desktop testcorrect711 u667a u6167 u8bfe ...