关于汇编语言实验9的一些问题
今天听完小甲鱼汇编视频的讲解,实验9有些疑惑。请求大侠们给小生详细解释下。 以下代码是网络上的一种解法,过程方面不是很理解。求搭救。谢了。; ============================================================================================
;
; 王爽汇编实验9根据材料编程
; 要求:编程实现在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串 'welcome to masm!' .
; 在80*25彩色字符模式下,显示器可显示25行,每行80个字符,每个字符可以有256种属性
; 02H表示黑底绿色
; 00100100B表示绿底红色
; 01110001B表示白底蓝色
;
; ============================================================================================
assume cs:code
data segment
db 'welcome to masm!'
data ends
code segment
start: mov ax,data
mov ds,ax
mov ax,0b872h
mov es,ax
mov si,0
mov di,0
mov cx,16
s: mov dl,2h ;这里开始不明白了,这是有什么用。
mov es:,dl
mov dl,24h
mov es:,dl
mov dl,71h
mov es:,dl
mov al,
mov es:,al
mov es:,al
mov es:,al
inc si
add di,2
loop s ;这一段想了很久,不知道它的思路,能不能解释下,每一步。
mov ax,4c00h
int 21h
code ends
end start
这不是循环了16次么 高字节表示 字符的属性(颜色)低字节表示字符的ASCII码
先把颜色和字符的ASCII码值赋值给ah和 al再将ax写入你要显示的行和列
s: mov al, ;字符赋值al
mov ah,02h ;绿色
mov es:.720h,ax ;写入第12行64列
mov ah,14h ;绿底红色
mov es:.7c0h,ax ;写入第13行64列
mov ah,71h ;白底蓝色
mov es:.860h,ax ;写入第14行64列
inc bx ;指向下一字符
add si,2 ;指向下一显存单元
loop s
就是在哪一行显示什么颜色, 不知道啊。想要高手回答一下。 路过看看哈 {:1_1:}
页:
[1]