小叶 发表于 2012-3-21 11:50:23

我是新手,屏幕显示的小程序出错了,路过帮下哈

assume cs:code,ds:data

data 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

小叶 发表于 2012-3-21 11:51:46

刚才忘了写了,我的思路是想把AX中的累加值在屏幕中间显示出来,不知道怎么回事就是显示不出来!!!

莫名其妙 发表于 2012-3-21 14:49:56

本帖最后由 莫名其妙 于 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码输出的

小叶 发表于 2012-3-22 21:57:11

谢谢你。。。。。
页: [1]
查看完整版本: 我是新手,屏幕显示的小程序出错了,路过帮下哈