|
发表于 2023-11-25 08:40:58
|
显示全部楼层
这个错误是因为在表达式 `mov eax, white + (blue * 16)` 中缺少运算符。
根据代码中的上下文,我猜测你想要给 `eax` 寄存器设置蓝底白字的颜色。在Irvine32库中,相关的颜色常量已经预定义了,你可以直接使用它们来设置颜色。
假设 `white` 是代表白色的一个常量,而 `blue` 是代表蓝色的一个常量,那么你可以这样修改代码:
1. 找到 `white` 和 `blue` 的定义并确保它们是有效的常量,例如:
2. 将 `mov eax, white + (blue * 16)` 改为 `mov eax, white + blue * 16`。
最终的代码应该类似于:
- .386
- .model flat,stdcall
- .stack 4096
- ExitProcess PROTO,dwExitCode:DWORD
- Include Irvine32.inc
- .data
- array DWORD 1,2,3,4,5,6,7,8,9,0Ah,0Bh
- white = 7
- blue = 1
- .code
- main PROC
- mov eax, white + blue * 16 ;设置蓝底白字的颜色
- mov esi, OFFSET array
- mov ecx, LENGTHOF array
- mov ebx, TYPE array
- call DumpMem
- call WaitMsg ;暂停
- call Clrscr ;清屏
- INVOKE ExitProcess,0
- main ENDP
- END main
复制代码
希望这可以帮到你!如果你还有其他问题,请随时提问。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。 |
|