汇编语言实验9

一:

代码:

实验结果:

二:

代码:

实验结果:

三:

代码:

assume ds:data, cs:code
data segment
       db 'welcome to masm!' 
       db 2H,24H,71H         ;字符串属性值
data ends

stack segment
        dw 8 dup(0)
stack ends
 
code segment
start:  
        mov ax,data
        mov ds,ax            ;字符串及属性值所在段的段地址送入ds
        mov ax,stacksg
        mov ss,ax
        mov ax,0b800H
        mov es,ax            ;80×25彩色字符模式显示缓冲区段地址送入es
        mov cx,3
        mov di,0
        mov si,06E0h
   s0:push cx
        mov al,ds:[16+di]
        mov bx,0
        mov cx,16
   s1:mov dl,ds:[bx]
        mov byte ptr es:[si],dl
        mov byte ptr es:[si+1],al
        inc bx
        add si,2
        loop s1
        add si,128
        inc di
        pop cx
        loop s0
         
          mov ax,4c00h
        int 21h



        ; 添加代码,通过循环逐个将每个字符及其属性送入相应的显示缓冲区对应行
        ; 即:将data段的字符及属性通过循环逐个mov到显示缓冲区(es)段相应的单元内
         
        ; 可以先尝试分别写三段代码,每次完成一行的显示
        ; 程序运行起来后,再尝试通过灵活的寻址方式和循环,对三段代码修改和简化
        ; 学习第10章子程序后,还可以进一步完善优化,设计子程序,将行号、列号、颜色属性设置成入口参数
         
      
code ends
end start    

实验结果:

 总结:

实践出真知

多重循环注意保存cx的值 不能重复不能丢失

猜你喜欢

转载自www.cnblogs.com/toubunengtu/p/10086371.html
今日推荐