| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
只用到了loop,感觉这一章学的转移指令没有用到?之前的知识就能够做出来 
- assume cs: codesg, ds: datasg, ss: stacksg
 
  
- datasg segment
 
 -         db 'welcome to masm!'
 
 -         db 02H, 24H, 71H
 
 - datasg ends
 
  
- stacksg segment
 
 -         dw 8 dup(0)
 
 - codesg segment
 
 - start:        mov ax, datasg
 
 -                 mov ds, ax
 
 -                 mov bx, 0    ;定位行
 
 -                 
 
 -                 mov ax, stacksg
 
 -                 mov ss, ax
 
 -                 mov sp, 16
 
 -                 
 
 -                 mov ax, 0b872H     ;12行中间
 
 -                 mov es, ax
 
 -                 
 
 -                 mov bp, 0     ;属性 
 
 -                 
 
 -                 mov cx, 3     ;最外层循环,3行
 
 -         s:        push cx
 
 -                 
 
 -                 mov si, 0;datasg中待复制字母的偏移地址
 
 -                 mov di, 0;显存中操作的偏移地址
 
 -                 
 
 -                 mov cx, 16
 
 -         s0:        mov al, ds:[si]
 
 -                 mov es:[bx][di], al;ASCII码
 
 -                 
 
 -                 inc di;下一个字节存放属性
 
 -                 
 
 -                 mov al, ds:10H[bp]
 
 -                 mov es:[bx][di], al;属性
 
 -                 
 
 -                 inc di;准备存放下一个字母
 
 -                 inc si;指向下一个字母
 
 -                 loop s0
 
 -                 
 
 -                 add bx, 160;指向下一行
 
 -                 inc bp ;下一行用下一个属性
 
 -                 
 
 -                 pop cx
 
 -                 loop s
 
  
-                 mov ax, 4c00H
 
 -                 int 21H
 
 - codesg ends
 
 - end start                
 
  复制代码 |   
 
 
 
 |