编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串 ‘welcome to masm!’。
一个循环解决:
assume cs:code
table segment
db 1 dup ('welcome to masm!') ;定义字符串16字节内存空间
db 2h,24h,71h ;颜色属性, 3个字节
table ends
code segment
start: mov ax,table
mov ds,ax ;表的段地址放在ds
mov ax,0b800h
mov ss,ax ;显示缓冲区段地址放在ss里
mov bp,160*12 ;屏幕最中央那行是第12行,它的偏移地址=160*12
mov bx,16 ;表中颜色属性的偏移地址
mov si,0
mov di,64 ;每个字符占2个字节,16*2=32个字节放在160个字节中间就是第65列开始放,
mov cx,16
s: mov al,[si] ;把字符放在al里
mov ah,[bx] ;把第一行颜色属性放在ah里
mov [bp+di],ax ;ax一次复制两个字节,放入中间第一列显示缓冲区
mov ah,[bx+1] ;把第二行颜色属性放在ah里
mov [bp+di+160],ax ;ax一次复制两个字节,放入中间第二列显示缓冲区
mov ah,[bx+2] ;把第三行颜色属性放在ah里
mov [bp+di+160+160],ax ;ax一次复制两个字节,放入中间第三列显示缓冲区
inc si ;取下一个字符
add di,2 ;显示缓冲区放下一个字符
loop s
mov ax,4c00h
int 21h
code ends
end start
debug要直接里要 g 一口气跑完