我需要一个程序,该程序在中心显示在文本的左侧和右侧带有心形符号的“谢谢”,但是带有红色的心和带有绿色的文本。 我现在有了这段代码:
mov ax, 0B800h
mov es, ax
mov di,spiazz
mov byte ptr es:[di+0], ' '
mov byte ptr es:[di+2], ' '
mov byte ptr es:[di+4], ' '
mov byte ptr es:[di+1], 20h
mov byte ptr es:[di+3], 70h
mov byte ptr es:[di+5], 40h
使用类似的代码,我需要显示“ heart(symbol)Thanks heart(symbol)”; 但心是红色,文字是绿色。 预先谢谢你
答案 0 :(得分:0)
有很多方法可以实现这一目标。以下是其中之一:
mov ax, 0B800h ;Points to the 80x25 text screen
mov es, ax
mov di, (13-1)*160+(37-1)*2 ;Print At(37,13); //Column 37, Row 13
mov si, msg
cld ;This makes SI and DI move f o r w a r d as is needed
mov ax, 0403h ;AL=3 (heart character) AH=04h (RedOnBlack)
push ax ;(1) Preserve on the stack
LL:
stosw
mov ah, 02h ;GreenOnBlack
lodsb
cmp al, 0 ;Message was zero-terminated
jne LL ;Terminator not yet reached
pop ax ;(1) Restore from the stack
stosw ;This outputs the second heart character
...
msg db 'Thanks', 0
请特别注意评论!不要只是复制粘贴。