我是新手,屏幕显示的小程序出错了,路过帮下哈
assume cs:code,ds:datadata segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends
code segment
start: mov ax,data
mov ds,ax
sub bx,bx
mov ax,0
mov cx,8
s: add ax,
add bx,2
loop s
mov dx,0b800h
mov ds,dx
mov bx,160*12+36*2
mov ,ax
mov ax,4c00h
int 21h
code ends
end start
刚才忘了写了,我的思路是想把AX中的累加值在屏幕中间显示出来,不知道怎么回事就是显示不出来!!! 本帖最后由 莫名其妙 于 2012-3-21 14:58 编辑
mov dx,0b800h
mov ds,dx
mov bx,160*12+36*2
mov ,ax
这些是不对的
这里显示的时候不是按你想想中给数据放进显示区域就行了
因为显示区域显示的时候 一个字节的数据 低八位显示的是数据的ACSII码 高八位是显示颜色的
你要显示一个字形数据就要把他们拆开拆成4个 1个字节的数据 然后
每个字节 按照ASCII码对应的数据进行输入 低八位放ASCII码高八位放颜色(不要颜色的时候就空着)
例如你这题累加后的结果是AX=4BDB 那么要在显示区域显示就要给数据拆成 4 B D B
对应的ASCII码是 34 424442然后对着显示区域输入 比如bx=0输入34bx =2 输入42 bx =4 输入44bx=6 输入42 这样才能显示出 4BDB
具体实现部分你往后看 有一章关于显示输出 数据的 也是给数据拆开然后分别对应ASCii码输出的
谢谢你。。。。。
页:
[1]