仮想マシンなどの nasm を使用してブートローダーを作成している人がいます。とにかく、vramを使用して、キーs、d、f、gによってトリガーされる背景とフォントの色の変更を表示します。Sは背景色でフォントの色を切り替えます。これを行う方法は知っていますが、適切な方法がわかりません。vram は、2 バイトが最初の文字、2 番目がその属性になるように設定されています。これらは背景の次に文字の色です。だから私はこれらを取り、それらを切り替える必要があります。これにより、フォントの色と背景の色が切り替わります。コードで実際にどのように行うのですか?
; s key
;///////////////////////////////////////////////////////////
.s:
mov bx,0xb800 ;direct video memory access 0xB8000
mov es,bx
xor bx,bx ;es:bx : 0xb8000
mov dh,0 ;row from 0 to 24
mov dl,0 ;col from 0 to 79
.loops1:
inc bx
mov byte [es:bx], 0ah ;attribute
inc bx
inc dl
cmp dl,80 ;col 0-79
jne .loops1
mov dl,0
inc dh
cmp dh,25 ;row 0-24
jne .loops1
jmp .kbin
2 番目の質問: このループを使用してキーを検出します。これらのキーを Ctrl + キーに変更するにはどうすればよいですか。
.kbin:
mov ah,10h ;Read from keyboard
;ah scan code, al ascii char
int 16h
cmp al, 53h ;uppercase s
je .s
cmp al, 73h ;lowercase s
je .s
cmp al, 44h ;uppercase d
je .d
cmp al, 64h ;lowercase d
je .d
cmp al, 46h ;uppercase f
je .f
cmp al, 66h ;lowercase f
je .f
cmp al, 47h ;uppercase g
je .g
cmp al, 67h ;lowercase g
je .g
jmp .kbin
ありがとうございました。