• 王爽汇编语言实验9


    首先看一下效果:

    接下来具体分析一下:

    第一步划分段,首先是数据段:来保存字符串“welcome to masm!”。

    data segment
        db 'welcome to masm!'
        db 00000010B       ;1
        db 00100100B       ;2
        db 01110001B       ;3
    data ends 

    1,2,3表示颜色属性,他用一个字节保存,不同的位对应不同的颜色。这里由于有三行,所以定义了三个,每个颜色的属性都不一样。

    接下来是栈段:

    stack segment stack
        db 128 dup (0)
    stack ends 

    最后是代码段。

    code segment
    
        start:mov ax,stack
            mov ss,ax
            mov sp,128
    
            mov ax,data 
            mov ds,ax
    
            mov ax,0b800H    ;确定数据到哪里去
            mov es,ax
    
            mov si,0
            mov di,160*10+30
            mov bx,16
            mov dx,0
            mov cx,3
    masm:   push bx
            push cx 
            push si
            push di
    
            mov dh,ds:[bx]    ;dx分为两部分,一部分用来保存颜色属性,一部分用来保存字符的ASCII
    ;由于dx寄存器是16位的,这里假设用高8位用来保存颜色属性,低8位用来保存ASCII属性 mov cx,
    16 show: mov dl,ds:[si] mov es:[di],dx add di,2 inc si loop show pop di pop si pop cx pop bx add di,160 inc bx loop masm mov ax,4c00h int 21h code ends

    完整代码:

    assume cs:code,ds:data,ss:stack
    
    data segment
        db 'welcome to masm!'
        db 00000010B
        db 00100100B
        db 01110001B
    data ends 
    
    stack segment stack
        db 128 dup (0)
    stack ends 
    code segment
    
        start:mov ax,stack
            mov ss,ax
            mov sp,128
    
            mov ax,data 
            mov ds,ax
    
            mov ax,0b800H
            mov es,ax
    
            mov si,0
            mov di,160*10+30
            mov bx,16
            mov dx,0
            mov cx,3
    masm:    push bx
            push cx 
            push si
            push di
    
            mov dh,ds:[bx]
            mov cx,16
    show:    mov dl,ds:[si]
            mov es:[di],dx
            add di,2
            inc si 
             loop show 
        
            pop di
            pop si 
            pop cx
            pop bx 
            add di,160
            inc bx
            loop masm
            mov ax,4c00h
            int 21h    
    
    
    code ends 
    end  start 
  • 相关阅读:
    DBHelper
    ASP.NET WEBAPI oken验证
    市面上的网盘和搜索网盘资源网站
    C#批量删除注释与空行
    DB help
    抽象工厂1
    抽象工厂
    单例模式的八种写法
    Docker概念
    Django的安装
  • 原文地址:https://www.cnblogs.com/SunShine-gzw/p/13884121.html
Copyright © 2020-2023  润新知