337192445 发表于 2011-6-6 16:26:21

Y.H 发表于 2011-6-7 23:15:03

有个很明显的错误 从十八行开始 你的注释符号 ; 是在中文输入法下输入的 那肯定不行啊

337192445 发表于 2011-6-10 08:22:37

风扫地 发表于 2011-6-11 12:28:53

up~up~!!

yuyuhongss 发表于 2011-6-11 12:58:37

牛B

lsgo 发表于 2011-6-11 18:08:42

还没学到 坐等楼下详解{:5_93:}

weixianlang 发表于 2011-6-19 08:51:38

assume cs:code

data segment
   db 10 dup (0)
data ends

code segment
    start:
    mov ax,12666
    mov bx,data
    mov ds,bx
   
    mov si,0
    call dtoc
    mov dh,8
    mov dl,3
    mov cl,2
    call show_str
ok: mov ax,4c00h
    int 21h

dtoc:mov bx,10
toc1:div bx
   add dx,30h
   push dx
   mov dx,0
   inc si
   mov cx,ax
   jcxz r
   jmp short toc1      ;此循环求出12666各位对应的ASCII码,压入栈中,商为0时跳走,用SI计次
r:mov cx,si               ;把计次SI数据传给CX, 下面出栈用
   mov bx,0            
p:pop dx
   mov ds:,dx
   inc bx
   loop p               ;此循环出栈,用上面的SI,顺序出栈12666ASCII码,复制到data段中
   ret
   
   
   
   
   
   
   show_str:               ;子程序,dh为行数,dl为列数,cl为属性,ds从第0个字节开始,遇0结束!
      mov ax,0B800H
      mov es,ax            ;给显示缓冲区段地址
      mov si,0               ;si为字符定位变量
      sub dh,1
      mov al,0a0h
      mul dh                ;算出行偏移
      mov dh,0
      sub dl,1
      add dx,dx             ;算列偏移
      add dx,ax             ;算出总偏移
      mov di,dx
      mov ah,cl
s:   mov al,
      mov es:,ax
      inc si
      add di,2
      mov cl,al
      jcxz damn             ;判断数据是否为0,为0结束循环!
      jmp short s
damn: ret      
code ends
end start
页: [1]
查看完整版本: 实验10.3 我想了,很久...没办法,上传,请指点