assembly 如何在emu8086汇编语言中存储光标所指位置的值(AL)

zf2sa74q  于 2023-01-09  发布在  其他
关注(0)|答案(1)|浏览(133)

当我在emu8086模拟器上运行井字游戏时向左或向右移动指针时,我无法检索在光标所指位置中找到的值。记录的值仍然是光标初始位置的值。我如何找出新位置的值?

L3:
    inc line
    add dl,1 ;Move cursor Right
    int 10h
    cmp line,3
    jz B_Win 
    cmp al,'B'
    jnz menu
    jz L3
    

 B_Win:
 jmp exit

我试着向右移动光标,并认为值AL可能会随之改变,但它没有改变

nwsw7zdq

nwsw7zdq1#

检索在光标所指位置找到的值。
看起来你想从屏幕上读取。你可以使用bios.readcharacterandattribute函数08h来实现。

inc  Col          ; Move to the right
  call SetCursorPosition
  mov  bh, 0        ; Displaypage
  mov  ah, 08h      ; BIOS.ReadCharacterAndAttribute
  int  10h          ; -> AL is character, AH is attribute
  cmp  al, 'B'

  ...

SetCursorPosition:
  mov  dh, Row
  mov  dl, Column
  mov  bh, 0        ; Displaypage
  mov  ah, 02h      ; BIOS.SetCursorPosition
  int  10h
  ret

相关问题