初学nasm,一段代码很多异常请指正
初学nasm,一段代码很多错误请指正
------解决方案--------------------
你在写引导吗?
设置ds是干什么,后面没用到啊。
如果将显存第一个字符设为红色‘Y’
代码:
------解决方案--------------------
直接
mov ax, 0x7c2
mov ds, ax
------解决方案--------------------
用 div 指令来做除法,对于除以 16 这种 2 的 n 次方还可以用移位指令来
org 0x7c00
[section text align=16]
mov ax, 0xb800
mov es, ax ;设置为显存段地址
mov ax, section.data.start/16 ;这句话出错了,不知道如何修改
mov ds, ax ;设置数据段地址
mov al, [es:char]
mov ah, 0b00001100
mov [es:0], ah
jmp $
[section data align=16]
char: db 'Y'
------解决方案--------------------
你在写引导吗?
设置ds是干什么,后面没用到啊。
如果将显存第一个字符设为红色‘Y’
代码:
org 0x7c00
[section text align=16]
mov ax, 0xb800
mov es, ax ;设置为显存段地址
mov ax, 0
mov ds, ax ;ds=0
mov al, [ds:char] ;al='Y'
mov ah, 0b00001100
mov [es:0], ax ;写
jmp $
[section data align=16]
char: db 'Y'
times 478-($-$$) db 0 ;478=510-16-16
db 0x55,0XAA
------解决方案--------------------
直接
mov ax, 0x7c2
mov ds, ax
------解决方案--------------------
用 div 指令来做除法,对于除以 16 这种 2 的 n 次方还可以用移位指令来