|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- assume cs:code,ds:data,ss:stack
- data segment
- db 'hello world!',0 ;要显示的字符串
- data ends
- stack segment
- dw 4 dup(0) ;开辟栈,8B
- stack ends
- code segment
- start:mov dh,24 ;行号[0,24]
- mov dl,25 ;列号[0,79]
- mov cl,2 ;属性
-
- mov ax,data
- mov ds,ax
- mov si,0
- mov ax,stack
- mov ss,ax
- mov sp,8
- call show_str
- mov ax,4c00h ;此语句IP保存在 ss:6 7,(sp)=6
- int 21h
-
- show_str:mov ax,0b800h ;显存段地址es
- mov es,ax
- mov al,160 ;显存偏移地址bx=ah*160+al*2
- mul dh
- push ax ;(sp)=4
- mov al,2
- mul dl
- mov bx,ax
- pop ax ;(sp)=6
- add bx,ax
-
- change:push cx ;cx入栈,保存属性值 ip (sp)=4
- mov cl,[si]
- mov ch,0
- jcxz ok
- pop cx ;(sp)=6
- mov al,[si]
- mov ah,cl
- mov es:[bx],ax
- inc si
- add bx,2
- jmp short change
- ok:pop cx ;因为cx==0,条件成立,执行此语句之前 (sp)=4 ,执行后(sp)=6,可使ret转移到mov ax,4c00h
- ret
- code ends
- end start
复制代码 |
|