汇编语言-实验9

    技术2022-07-11  93

    assume cs:code data segment db 'welcome to masm!' db 2,24h,71h data ends stack segment db 16 dup(0) stack ends code segment start: mov ax,data mov ds,ax ;加载data首地址到ds段寄存器 mov ax,stack mov ss,ax ;加载stack首地址到es寄存器,用来存放颜色 mov sp,16 ;初始化栈 用来存放cx mov ax,0B800h mov es,ax ;加载缓冲区段地址到es段寄存器 mov si,06e0h ;存放字符从11行开始 mov cx,3 ;//循环写3此welcome to masm! s: mov bx,cx mov ah,es:[bx+15] ;利用cx+15来将71h 24h 02h三种颜色 循序加载到每一行 push cx ;将外层循环cx缓存到栈中 mov cx,16 mov di,0 ;记录复制字符的下标 mov bx,40h ;缓冲区写入开始第32个字符是中间 (80-16) / 2 = 32 s0: mov al,ds:[di] ;字符写入al mov es:[si+bx],ax ;从第11行+ bx的偏移位置开始写入缓冲区 add bx,2 ;写入位置往后移动2字符 inc di ;复制的字符位置+1 loop s0 add si,0a0h ;换行 pop cx ;恢复外层循环 loop s mov ax, 4c00h int 21h code ends end start
    Processed: 0.015, SQL: 9