zoukankan      html  css  js  c++  java
  • 王爽《汇编语言第三版》实验10-1代码实现

    ;编写一个通用的子程序实现这个显示字符串的功能,提供灵活的调用接口,使调用者
    ;可以决定显示的位置,内容,颜色
    assume cs:code,ss:stack,ds:data

    data segment
            db 'welcome to masm!',0 ;要显示的字符串
    data ends

    stack segment
            db 128 dup (0)
    stack ends

    code segment

     start: mov dh,23    ;行数
            mov dl,10    ;列数
            mov cl,4     ;颜色

            mov ax,data
            mov ds,ax

            mov ax,stack
            mov ss,ax
            mov sp,128

            mov si,0
            call show_str


            mov ax,4c00h
            int 21h
    ;------------------------------
     show_str:
            push cx
            push dx

            mov bx,0b800h    ;显示地址
            mov es,bx
    ;---------------------------------
            sub dh,1         
            mov al,160
            mul dh
            mov di,ax         ;行偏移

            sub dl,1
            mov al,2
            mul dl             ;列偏移
            add di,ax         ;行偏移+列偏移
    ;-------------------------------------
            mov dh,cl        ;将颜色cl赋予dh   

     
     s:     mov cl,ds:[si]     ;将字符传给cl
            mov ch,0         ;在cx为0时跳出循环

            mov dl,cl        ;字符
            mov es:[di],dx     ;字符+颜色传递到显示位置

            inc si             ;调用下一个字符
            add di,2         ;显示下一个字符
     

            jcxz ok             ;当cx为0时结束循环,字符最后一个为0
            loop s

      ok:   pop dx
            pop cx
            ret                 ;返回到主函数

    code ends

    end start

  • 相关阅读:
    CF1442E. Black, White and Grey Tree
    CF1442D. Sum
    CF1444D. Rectangular Polyline
    arc107F
    外心与垂心关系
    CF1434E. A Convex Game
    CF1434D. Roads and Ramen
    arc106E
    arc106F
    CF704E. Iron Man
  • 原文地址:https://www.cnblogs.com/xautxuqiang/p/5478282.html
Copyright © 2011-2022 走看看