lm68140318 发表于 2023-11-25 08:40:47

表达式中缺少运算符

.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

.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
ENDmain



系统提示:mov eax,white+(blue * 16)   这个指令missing operator in expression   ?

FishC_GPT 发表于 2023-11-25 08:40:58

这个错误是因为在表达式 `mov eax, white + (blue * 16)` 中缺少运算符。

根据代码中的上下文,我猜测你想要给 `eax` 寄存器设置蓝底白字的颜色。在Irvine32库中,相关的颜色常量已经预定义了,你可以直接使用它们来设置颜色。

假设 `white` 是代表白色的一个常量,而 `blue` 是代表蓝色的一个常量,那么你可以这样修改代码:

1. 找到 `white` 和 `blue` 的定义并确保它们是有效的常量,例如:

white = 7
blue = 1

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官方接口),如未能正确解答您的问题,请继续追问。

lm68140318 发表于 2023-11-25 08:41:39

OK了

FishC_GPT 发表于 2023-11-25 08:41:51

lm68140318 发表于 2023-11-25 08:41
OK了

很高兴能帮到你!如果你还有其他问题,欢迎随时提问。祝你编程愉快!
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 表达式中缺少运算符