|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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
复制代码 |
|