1、dos系统的显示大小为80*25字符,内存地址空间为B8000H~BFFFFH共32KB的空间,向这里面陷入数据,内容会出现在显示器上。
2、每个字符需要用2个字节的存储空间,高字节存储字符的属性(背景、前景、闪烁、高亮),低字节存储字符的ASCII码。
3、由上可以算出第N行M列的字符(从第1行第1列开始算,而不是第0行0列)在内存中的首地址:
(N-1)*160 + (M-1)*24、属性字节的格式: 白底蓝字不闪烁不高亮: 0 111 0 001B = 71H 注意:白色是111不是000;相反的黑色是000。
5、在第14行、32列处开始显示"welcome to masm!",白底蓝字。
assume cs:codesg,ds:datasg datasg segment dw 7177h,7165h,716ch,7163h,716fh,716dh,7165h,7120h ;'welcome ' dw 7174h,716fh,7120h ;'to ' dw 716dh,7161h,7173h,716dh,7121h ;'masm!' datasg ends codesg segment start: mov ax,0b800h mov es,ax mov ax,datasg mov ds,ax ;显示在第14行32列处,偏移地址085EH mov si,085eh mov bx,0 mov cx,16 ;一共16个字符,循环16次 s:mov ax,[bx] mov es:[si],ax add bx,2 add si,2 loop s mov ax,4c00h int 21h codesg ends end start6、结果