練習1 用二進位制顯示所按鍵的ASCII碼

2021-05-26 08:50:13 字數 1119 閱讀 9082

題目:

寫乙個程式,用二進位制顯示所按鍵的

ascii

碼,直到按下英文的句點符號.

則退出。

21h

的01

號子功能可輸入

1個字元。參考「

80x86

組合語言程式設計教程

.pdf

」143頁。

原始碼:assume cs:code

code segment

start:

mov ah, 01h    ;呼叫01子功能,接收1個按鍵輸入

int 21h       ;所按鍵儲存在al中

cmp al, '.'

jz exit

mov bl, al    ;這裡al的值還未改變

;如果寫在下面中斷之後會變成dl的值

mov ah, 02h

mov dl, 0dh

int 21h

mov dl, 0ah

int 21h

call output

jmp start

exit: mov ah, 4ch

int 21h

output proc

;在原版裡要先儲存ax,bx,cx到ss

;退出過程時再還原現場,這裡省略了

;似乎也沒什麼問題

;因為每一次暫存器的值都要重新寫的

mov cx, 8

times: shl bl, 1

jc one

mov dl, 30h       ;這裡mov dl, '0'也可

jmp ovr

one: mov dl, 31h   ;同理這裡mov dl,'1'也可

ovr: mov ah, 02h

int 21h

loop times

mov dl, 'b'

int 21h

mov dl, 0dh

int 21h

mov dl, 0ah

int 21h

ret               ;過程中的返回語句,必須有

output endp

code ends

end start

二進位制 二進位制中1的個數

題目 請實現乙個函式,輸入乙個整數,輸出該數二進位制表示中 1 的個數。例如,把 9 表示成二進位制是 1001,有 2 位是 1。因此,如果輸入 9,則該函式輸出 2。示例 1 輸入 00000000000000000000000000001011 輸出 3 解釋 輸入的二進位制串 0000000...

整數的二進位制顯示

由於c 沒有方便的直接顯示整數二進位制的函式。這裡簡單寫了乙個,希望這個工具對大家觀察計算機中二進位制的補碼表示以及位運算有幫助。還是用到了bitset做幫助,不過便於檢視新增了每個位元組之間的空格。演算法控們可以不採用bitset,自己實現乙個。這裡顯示的都是補碼,至於補碼的規則,參考 inclu...

二進位制顯示檔案

void cprocessdlg onhexshow m lfilelength file.getlength lpos file.seek loffset,cfile begin while nret file.read szbuf,m nperlinebytes 0 stemp.format t...