輸入8位二進位制資料readbb
實現readbb
16位二進位制資料輸入readbw
實現readbw
16位二進位制輸出dispbw
實現
include io.inc
.model small
.stack
.data
.code
.startup
;dispbb 顯示8位二進位制資料 入口:al=8位資料
mov al,
4ch call dispbb
.exit
end
;dispbb 顯示8位二進位制資料 入口:al=8位資料
呼叫功能號輸出的時候會影響暫存器ax
;include io.inc
.model small
.stack
.data
.code
.startup
;dispbb 顯示8位二進位制資料 入口:al=8位資料
mov al,4ch
call dispbb
.exit
dispbb proc
;邏輯左移指令 shl reg/mem,1/cl ;邏輯左移:最低位補0,最高位進入cf
;帶進製加法指令 adc
push cx
push dx
push ax
mov cx,8
again:pop ax
shl al,1
push ax
mov dl,0
adc dl,30h
mov ah,2
int 21h
loop again
pop ax
pop dx
pop cx
retdispbb endp
end
dispbb proc
push ax
push cx
push dx
mov cx,8
;不帶進製迴圈左移指令 rol
again: rol al,1
push ax
and al,01
add al,30h
mov dl,al
mov ah,02
int 21h
pop ax
loop again
pop dx
pop cx
pop ax
retdispbb endp
include io.inc
.model small
.stack
.data
.code
.startup
;readbb 輸入8位二進位制資料 出口:al=8位資料
call readbb
.exit
end
;include io.inc
.model small
.stack
.data
.code
.startup
;readbb 輸入8位二進位制資料 出口:al=8位資料
call readbb
.exit
readbb proc
push bx
push cx
rb1:xor bx,bx ;bx用於存放二進位制結果
mov cx,8 ;限制輸入字元的個數
rb2:mov ah,1
int 21h
cmp al,'0'
jb err ;小於0輸入錯誤
cmp al,'1'
ja err ;大於1輸入錯誤
sub al,'0'
shl bl,1
add bl,al
loop rb2
mov al,bl
pop cx
pop bx
reterr:push ds ;保護ds
mov ax,cs ;因資訊儲存在**段,所以需要設定ds=cs
mov ds,ax
lea dx,errmsg
mov ah,9
int 21h
pop ds
jmp rb1
errmsg db 0dh,0ah,'input error, enter again: $'
readbb endp
end
readbb proc
push bx
push cx
push dx
xor bx,bx
mov cx,8
;06h 功能直接控制台i/o 入口引數dl=0ffh(輸入請求) dl=字元(輸出請求)
;出口引數 al=輸入的字元 其中16進製制數字以字母開頭要以0開頭
rdw1:mov ah,06h
mov dl,0ffh
int 21h
jz rdw1
cmp al,30h
jb rdw1
cmp al,31h
ja rdw1
mov ah,06
mov dl,al
int 21h
sub al,30h
shl bl,1
or bl,al
loop rdw1
mov ax,bx
pop dx
pop cx
pop bx
retreadbb endp
;readbw 輸入16位二進位制資料 出口:ax=16位資料
include io.inc
.model small
.stack
.data
.code
.startup
;readbw 輸入16位二進位制資料 出口:ax=16位資料
call readbb
int 3h ;debug除錯用檢視ax暫存器的資料
.exit
end
;include io.inc
.model small
.stack
.data
.code
.startup
;readbw 輸入16位二進位制資料 出口:ax=16位資料
call readbb
int 3h
.exit
readbb proc
push bx
push cx
push dx
xor bx,bx
mov cx,16
;06h 功能直接控制台i/o 入口引數dl=0ffh(輸入請求) dl=字元(輸出請求)
;出口引數 al=輸入的字元 其中16進製制數字以字母開頭要以0開頭
rdw1:mov ah,06h
mov dl,0ffh
int 21h
jz rdw1
cmp al,30h
jb rdw1
cmp al,31h
ja rdw1
mov ah,06
mov dl,al
int 21h
sub al,30h
shl bx,1
or bl,al
loop rdw1
mov ax,bx
pop dx
pop cx
pop bx
retreadbb endp
end
dispbw顯示16位二進位制資料 入口:ax=16位資料
include io.inc
.model small
.stack
.data
.code
.startup
;readbw 輸入16位二進位制資料 出口:ax=16位資料
mov ax,1234h
call dispbw
.exit
end
.model small
.stack
.data
.code
.startup
;readbw 輸入16位二進位制資料 出口:ax=16位資料
mov ax,1234h
call dispbw
.exit
dispbw proc
push ax
push dx
push cx
mov cx,16
again:rol ax,1
push ax
and al,01h
add al,30h
mov ah,02h
mov dl,al
int 21h
pop ax
loop again
pop cx
pop dx
pop ax
retdispbw endp
end
2 39輸入輸出二進位制檔案語法細節
1抽象類inputstream和抽象類outputstream是所以讀寫二進位制資料的根類 2fileinputstream和fileoutputstream繼承的根類並且重寫根類方法 3如果試圖為不存在的檔案建立fileinputstream物件會發生異常 4不關閉檔案可能會造成資料受損,或其他程...
二進位制輸出
將1 byte 數,以二進位制輸出.注意是1byte數,如果是int之類的,應注意大小端問題.include define bytetobinarypattern d d d d d d d d define bytetobinary byte byte 0x80 1 0 byte 0x40 1 0...
輸出二進位制補碼
描述 輸入乙個整型 int 的整數,輸出它的32位二進位制補碼。輸入乙個整型整數。輸出輸出一行,即該整數的補碼表示。樣例輸入 7樣例輸出 00000000000000000000000000000111 第一位為符號位,0表示正數,1表示負數 正數的原碼,反碼,補碼相同 負數的反碼為各位取反,補碼為...