【汇编语言】实验三:《汇编语言》王爽第四版实验九

  • 一、实验内容

在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串‘welcome to masm!’。

  • 二、实验目的

理解底层程序设计,学会按位设置属性字节,从而配置出不同的前景色和背景色。

  • 三、程序流程图

【汇编语言】实验三:《汇编语言》王爽第四版实验九_第1张图片

 

注:cx1和cx2都是cx寄存器,记录循环次数,为了便于区分才设置的不同表示方法

  • 四、内存状况截图

内存第一行(0700:0000~0700:000f)存储的是16个字节,即‘welcome to masm!’。

内存第二行前三个字节(0700:0010~0700:0012)存储的是02h、24h、71h,分别代表绿色、绿底红色、白底蓝色。

【汇编语言】实验三:《汇编语言》王爽第四版实验九_第2张图片

 

  • 五、运行结果截图

【汇编语言】实验三:《汇编语言》王爽第四版实验九_第3张图片

 

  • 六、代码

  • DATAS SEGMENT
        ;初始化数据
           ;0123456789ABCDEF  共16位
        db 'welcome to masm!'
    	db 00000010B  ;低地址存放ASCII码,高地址存放字符的属性
    	db 00100100B	;0000 0000
    	db 01110001B	; rgb  rgb
    DATAS ENDS
    
    STACKS SEGMENT
        ;此处输入堆栈段代码
        DB 128 DUP (0)
    STACKS ENDS
    
    CODES SEGMENT
        ASSUME CS:CODES,DS:DATAS,SS:STACKS
    START:
    	;
        MOV AX,STACKS
        MOV SS,AX
        MOV SP,128
        
        MOV BX,DATAS
        MOV DS,BX
        
        MOV BX,0B800h
        MOV ES,BX
        
        MOV SI,0 	;从0开始访问
        MOV DI,160*10+30*2	;随便设置一个位置,偶数地址
        MOV BX,10H
        MOV DX,0
        
        MOV CX,3  ;循环次数
        
    col:  ;打印三行
        PUSH BX
        PUSH CX
        PUSH SI
        PUSH DI
        
        MOV CX,16
        MOV DH,DS:[BX] ;dh存放字符颜色,dl存放字符ascii
        
    row:    
    	MOV DL,DS:[SI] ;si是0,可以反复从字符串开头读取
        MOV ES:[DI],DX
        ADD DI,2
        INC SI
        loop row
        
        POP DI
        POP SI
        POP CX
        POP BX
        ADD DI,160
        INC BX	;bx改变一个字节
        loop col
        
        
        MOV AH,4CH
        INT 21H
    CODES ENDS
        END START
    

你可能感兴趣的:(汇编语言,硬件工程)