关于向显存写数据的问题
我写了一个加法的汇编程序,要求最后结果显示到屏幕上,程序如下assume cs:code,ds:data
data segment
db 1,2,23,3,43,34,2
data ends
code segment
start: mov ax,data
mov ds,ax
mov si,0
mov ax,0b800h
mov es,ax
mov di,160*13+32*2
mov ax,7h
call suanfa
mov es:,al
mov byte ptr es:,2h
mov ax,4c00h
int 21h
suanfa:mov cx,ax
mov ax,0
s:add al,
inc si
loop s
ret
code ends
end start
但是·不知道为什么,屏幕最后显示的是1,明明在AX寄存器里存的是6a,如图所示,麻烦帮我看下问题出在哪里?
你的程序是要把data的数组加起来,然后显示出来对吧。
你这7个数加起来是108,对应的ASCII码是l(小写的L),没问题呀。要不你换几个数,加起来65,打印肯定是‘A’ 寄存器里是AX=0x6c00,没有错啊,不是0x006a 路过
页:
[1]