|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- assume cs:codesg, ds:datasg, ss:stacksg
- datasg segment
- db'welcome to masm!' ;si索引,di定位
- db 02h,24h,71h ;bx索引
- datasg ends
- stacksg segment
- dw 8 dup(0) ;存放16位寄存器的值,所以定义为dw
- stacksg ends
- codesg segment
- start: mov ax, datasg
- mov ds, ax
- mov ax, stacksg
- mov ss, ax
- mov sp,10h ;指向栈顶指针
-
- mov ax, 0b872h ;要往ax处写入数据
- mov bx, 0 ;存放属性
-
- mov cx, 3
- s: push cx ;最外层循环
- push bx ;属性偏移位置
-
- mov es, ax ;往es处写内容
- mov si, 0
- mov di, 0
- mov cx, 16 ;放入字母ASCII码
- s1: mov ah, [si] ;一个字节8位
- mov es:[di], ah
- inc si
- add di, 2
- loop s1
- mov di, 1
- pop bx ;取出属性
- mov ah, 10h[bx] ;属性8位
- inc bx ;属性指向下一位置
-
- mov cx, 16 ;放入属性
- s2: mov es:[di], ah
- add di, 2
- loop s2
- mov ax, es
- add ax, 160 ;下一行
-
- pop cx
- loop s
-
- mov ax,4c00H
- int 21H
-
- codesg ends
- end start
复制代码 |
-
而且在调试的时候,ah=77,es=b872,di=0,在执行mov es:[di},ah时为什么没有写入显存里?
-
为什么我的代码只显示了一行?
|