我正在使用emu8086汇编程序,我是汇编语言的新手。我想用黑色背景打印黄色的所有A-Z字母。我的循环不起作用。它一直在运行,只显示B字母 有人可以帮帮我吗?这是我的代码:
var Select = exports.Select = function (_React$Component) {}
答案 0 :(得分:2)
您的计划有两个问题:
CX
寄存器用于循环计数器和要显示的字符。BX
注册表中的地址,因此所有内容都会相互显示。使用CX
作为循环计数器的第一个解决方案:
include emu8086.inc
ORG 100h
MOV AX, 0B800h
MOV DS, AX
mov al, "A" ;First character
mov ah, 00001110b ;YellowOnBlack
mov bx, 0 ;Address in video RAM
mov cx, 26
ALPHABETS:
mov [bx], ax
inc al ;Next character
add bx, 2 ;Next address
loop ALPHABETS
RET
使用字符代码本身作为循环计数器的第二种解决方案:
include emu8086.inc
ORG 100h
MOV AX, 0B800h
MOV DS, AX
mov al, "A" ;First character
mov ah, 00001110b ;YellowOnBlack
mov bx, 0 ;Address in video RAM
ALPHABETS:
mov [bx], ax
inc al ;Next character
add bx, 2 ;Next address
cmp al, "Z"
jbe ALPHABETS
RET