功夫猫 发表于 2012-2-21 17:57:32

实验九二次代码

本帖最后由 功夫猫 于 2012-2-21 18:16 编辑

assume cs:code,ds:data

data segment
db'welcome to masm!'
db 02h,24h,71h
data ends

code segment
start:mov ax,data
   mov ds,ax      ;数据段
   mov ax,0b800h
   mov es,ax      ;显存段
   mov si,0       ;源操作字符串
   mov bx,0       ;源操作颜色
   mov di,0       ;目的显存
   
   mov cx,3
s1:mov dx,cx
   
   mov cx,16      ;16次取字符、颜色
s: mov al,    ;字符放入低
   mov ah, ;颜色放入高
   mov es:,ax ;放入显存(低字符、高属性)
   inc si         ;指向下个字符
   add di,2       ;指向下个显存
   loop s
   
   mov si,0       ;指向开始字符
   add di,128   ;加128指向下一行显示
   inc bx         ;下一个颜色
   mov cx,dx
   loop s1
   
   mov ax,4c00h
   int 21h
code ends
   
end start


实验九第一次代码

莫名其妙 发表于 2012-2-22 15:34:00

十分简洁! 恭喜!~

梦想飞扬 发表于 2012-2-23 19:20:34

add di,128这个我看半天才明白,不得不说LZ做得比我一开始的要简洁
可以在s1:mov dx,cx下面加入mov si,0,把另外两条mov si,0指令去掉
页: [1]
查看完整版本: 实验九二次代码