zzxxcc89 发表于 2011-7-22 21:31:36

实验10的第一个实验

自己敲出来的,中间遇到了一些问题,上来看了看其他同学的代码呵呵。不过我只是看了看思路。下面是我敲的代码

assume cs:code
data segment
db 'Welcone to masm',0
data ends
stack segment
db 16 dup (0)
stack ends
code segment
start: mov ax,data
       mov ds,ax
    mov ax,0b800h
    mov es,ax
    mov ax,stack
    mov ss,ax
    mov sp,10h
    mov dh,8    ;行数    0--24      
    mov dl,30    ;列数    0---79   
    mov cl,2       ;颜色   B8000H---Bffff
    mov ch,0
    mov si,0       ;数值的首地址

    mov al,dh         ;下面到CALL的代码都是行数和列数的运算
    mov ah,0
    mov dh,160
    mul dh
    mov bx,ax
    mov al,dl
    mov ah,0
    mov dl,2
    mul dl
    mov di,ax
    call show
    mov ax,4c00h
    int 21h
   
show: push cx
    mov al,   ; 把si内存的内容给AL
    mov cl,al
    jcxz ok   ;循环到CX=0就跳转
    mov es:,al
    pop cx
    mov es:,cl
    inc si
    add di,2
    jmp short show
   
   ok: pop cx
       ret
code ends
end start   

说了你未必会懂 发表于 2011-7-22 23:28:35

来看看,那个颜色的范围好像不是b8000-bffff吧,这应该是显存范围

libocdf 发表于 2011-7-22 23:39:01

没错额,b8000-bffff是显存的地址,但颜色也要在显存段中设置额,楼主是对的

Cocol 发表于 2013-7-2 11:13:03

看看老帖,支持下
页: [1]
查看完整版本: 实验10的第一个实验