源**:
data segment
a db 00h
x db "000"
y db "000 ",0dh, 0ah, "$"
data ends
code segment
assume cs:code, ds:data
main:
mov ax, data
mov ds, ax
mov ax, 0b800h
mov es, ax
xor di, di
mov ax , 0003h
int 10h
mov al, 0h
mov [a], al
cldagain:
call change
call change1
mov ah, 04h
mov al, x[0]
stosw
mov ah, 02h
mov al, x[1]
stosw
mov al, x[2]
stosw
mov ah, 07h
mov al, y[0]
stosw
mov al, y[1]
stosw
mov al, y[2]
stosw
mov al, y[3]
stosw
call next
mov cl, [a]
inc cl
mov [a], cl
cmp cl, 0h
jne again
jmp over
over:
mov dh, 24
mov dl, 79
mov ah, 2
int 10h
mov ah, 0
int 16h
mov ah, 4ch
int 21h
next:
cmp di, 3840
ja next1
add di, 146
jmp done
next1:
sub di, 3840
change:
mov al, [a]
mov x[0], al
mov cl, 4
shr al, cl
mov ah, al
call hex
mov x[1], al
mov al, [a]
and al, 0fh
call hex
mov x[2], al
mov al, [a]
rethex:
cmp al, 10
jb add0
sub al, 10
add al, 'a'
jmp done
add0:
add al, '0'
done:
retchange1:
mov al, [a]
mov ah, 0
mov bl, 100
div bl
add al, 30h
mov y[0], al
mov al, ah
mov ah, 0
mov bl, 10
div bl
add al, 30h
mov y[1], al
add ah, 30h
mov y[2], ah
retcode ends
end main
個人組合語言基礎學習總結:
學習彙編就像學習用新的材料創造建築,彙編不像c,c++一類語言已經建立完整的模型函式庫,組合語言就像沙子,給你無盡的記憶體位址,就看你在這些位址上放些什麼以及如何擺放。其實任何乙個程式設計師都應該對彙編的基礎語言學習了解,否則他永遠不知道原來計算機的記憶體是可以這麼「玩」的
彙編 ASCII碼轉BCD碼並輸出
datas segment nums db 30h,31h,41h,38h,39h,32h,33h,36h,31h ascii碼 numo db 4 dup dlen nums datas ends codes segment assume cs codes,ds datas start mov a...
彙編顯示鍵盤掃瞄碼和ASCII碼
題目及要求如下 利用中斷型別16h呼叫鍵盤i o介面程式,並顯示由鍵盤中斷程式送回的掃瞄碼和ascii碼。顯示的格式如下 scan ascii char 1e 61 a 30 62 b 2e 63 c 按ctrl c可以中止程式。ctrl c對應的ascii碼為03h。練習將二進位制數轉換為16進製...
輸出相應的ascii碼 ASCII 字元的點陣顯示
要在 lcd 中顯示乙個 ascii 字元,即英文本母這些字元,首先是要找到字元對應的點陣。在 linux 核心原始碼中有這個檔案 libfontsfont 8x16.c,裡面以陣列形式儲存各個字元的點陣,比如 上圖左側有 16 行數值,每行 1 個位元組。每乙個節對應右側一行中 8 個畫素 畫素從...