王爽汇编第三版实验9

xiaoxiao2021-02-28  16

assume cs:codesg data segment     db 'welcome to masm!'     db 02H,24H,71H              ;字符显示的属性值 data ends stack segment     db 16 dup (0) stack ends codesg segment start:  ;初始化data数据段,es:di指向data         mov ax,data         mov es,ax         mov di,0         ;初始化显示缓冲区,ds:bx指向显示缓冲区。         mov ax,0b800H         mov ds,ax         ;25行取中是12、13、14行,80列取中开始是61列         ;12行的偏移量是12*160=1920         ;总偏移量为(偏移地址)1920+60=1980         mov bx,1980                 ;字符的属性在数据段中的偏移量         mov si,16         ;建栈,并初始化栈顶,熟悉栈结构。         ;其实这里都不用人工建栈,有系统自动的。         mov ax,stack         mov ss,ax         mov sp,16                     mov cx,3        ;计数器初始化为3(循环显示3次)     s:  push cx         ;入栈保护CX,在stack中                 mov cx,16       ;内循环为16次,16个字符 output: ;将字符写入显存中         mov al,es:[di]         mov [bx],al         ;将字符属性写入显存中         mov ah,es:[si]         mov [bx+1],ah                 inc di         add bx,2         loop output         ;每行输出的偏移量为128字节           add bx,128                 mov di,0         inc si         pop cx          ;出栈恢复cx计数器值         loop s                     mov ax,4c00H         int 21H codesg ends end start
转载请注明原文地址: https://www.6miu.com/read-1600404.html

最新回复(0)