我从 youtube 上得到了这个代码。这是在国际象棋游戏中移动棋子的代码。我还附上了从youtube获得的源代码https://github.com/r1fl/8086-Assembly-Chess
这是代码。
moves@validateMove:
pawn@moves:
xor cx, cx
cmp [byte si], 0
jg black@pawn
white@pawn:
pawn1@white:
mov bx, si
**sub bx, 8**
cmp [byte bx], 0
jne pawn2@white
push bx
inc cx
pawn2@white:
mov bx, offset board@engine
**add bx, 48d**
cmp si, bx
jb pawn3@white
mov bx, offset board@engine
**add bx, 55d**
cmp si, bx
ja pawn3@white
mov bx, si
**sub bx, 16d**
push bx
inc cx
电路板初始化代码 (https://github.com/r1fl/8086-Assembly-Chess/blob/8e317f2aa05f1ee843f3bf3b0e7fc196f0ae8e7a/engine.inc#L11) 显示它对电路板使用字节数组,并为数组索引使用类似的地址数学风格。
答案 0 :(得分:0)
n*8 - p
n*8 + p
n*8 + p
n*8 - p
这是董事会的实际逻辑