我需要指向下一个内存地址

时间:2014-02-11 16:22:23

标签: memory-management assembly x86-16

我有以下代码,我需要将下一个输入指向[C1]而不是[C0]但是没有硬编码,这个想法是用户可以键入他们喜欢的任何内容。我尝试了INC BL,但它导致了非法的操作码错误。谢谢

    CLO     ; Close unwanted windows.
Rep:
    IN  00  ; Wait for key press - Store it in AL.
INC BL

    CMP AL,0D   ; Was it the Enter key? (ASCII 0D)

    MOV [C0],AL     
    MOV [BL],AL

    JNZ Rep ; No - jump back.  Yes - end.



END

1 个答案:

答案 0 :(得分:1)

IN 00不能从键盘读取。使用中断21h(功能1)或中断16h(功能0)。

没有必要使用CLO。

你没有初始化BX(我们可以看到)。

为了在相对于C0的偏移处存储某些东西,用C0的偏移量初始化BX,然后在循环时增加BX。 BL是一个字节寄存器 - 它不包含整个地址。