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

  • 一、实验内容

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

  • 二、实验目的

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

  • 三、程序流程图

 

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

  • 四、内存状况截图

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

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

 

  • 五、运行结果截图

 

  • 六、代码

  • 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
    

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值