goup: cmp byte ptr es:[di-160],'-'
je goupret
cmp byte ptr es:[di-160],'|'
je goupret
cmp byte ptr es:[di-160],'*'
jne goup1
inc flower
add score,100
goup1: cmp byte ptr es:[di-160],'$'
jne goup2
inc money
add score,50
goup2: mov al,0f9h
call showchar
dec dh
mov ah,2
mov bh,0
int 10h
mov al,rolehead
call showchar
inc step
dec score
goupret:ret
解释下cmp byte ptr es:[di-160],'-'什么意思,详细点,感激不尽~~
------解决方案--------------------
就是es:[di-160]这个地址中存储的字符和'-'进行比较
如果相等下一条je就执行跳转, 否则就不跳转.
es中存的是段地址, [di-160]是偏移地址.
------解决方案--------------------
下面一句call showchar是调用子函数, 编程上一般约定函数的参数放在AX(或者AL, EAX)里, 0f9h就是传递给子函数的实参.