sosonemo 发表于 2010-12-28 20:39:38

《汇编语言》实验十 即17课作业代码

本帖最后由 sosonemo 于 2010-12-28 20:42 编辑

没看17课之前先写的代码,没有使用cmp和条件跳转指令,按书上的思想写出来的。assume cs:code

data segment
   db 10 dup(0)
data ends

stack segment
   db 30 dup(0)
stack ends

code segment
start:   mov ax,stack
             mov ss,ax
             mov sp,30
             mov ax,12666   ;(ax)=word型数据
             mov bx,data
             mov ds,bx
             mov si,0       ;ds:si指向字符串
          call dtoc
                       
          mov si,0
          mov dh,12      ;行(0开始)
          mov dl,12      ;列(0开始)
          mov cl,00100100b ;属性
          call show_str
                       
          mov ax,4c00h
          int 21h
dtoc:
                       push cx
                       push dx
                       push di
                       mov di,0
                s1:       mov cx,10
                            mov dx,0
                       div cx       ;ax=1266dx=6
             add dx,30h                       
                       push dx
                       inc di
                       mov cx,ax                       
                       jcxz ok
                       jmp s1
                ok:       
                     mov cx,di
               s2: pop word ptr
                     inc si
                     loop s2
                       
                     pop di
                       pop dx
                     pop cx
                       ret
show_str:
                        push ax
                       push dx
                       push cx
                     push bx
                     push es
               
                     mov ax,0b800h
                     mov es,ax
                  
                     mov al,160
                     mul dh
                     mov bx,ax   ;计算行
                        mov al,2
                     mul dl
                     add bx,ax   ;行+列,即首地址
                  
                     mov dh,cl
                     mov ch,0
        s:             mov cl,
                     jcxz ok1
                     mov es:,cl
                     mov es:,dh
                     inc si
                     add bx,2
                     jmp s
    ok1:   
                      pop es
                     pop bx
                     pop cx
                     pop dx
                     pop ax
                     ret
code ends
end start
                       
                       
页: [1]
查看完整版本: 《汇编语言》实验十 即17课作业代码