|
主题 : : 实验9、用循环嵌套方式测试成功! [待解决] |
回复[ 4次 ]
点击[ 430次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2010-07-25 01:49 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-12-25 22:53 |
实验9、用循环嵌套方式测试成功!
ASSUME CS:CODES,DS:DATAS
DATAS SEGMENT
db 'welcome to masm!'
db 72h,24h,71h
DATAS ENDS
STACKS SEGMENT
db 16 dup (0)
STACKS ENDS
CODES SEGMENT
START:
MOV AX,DATAS
MOV DS,AX ;设置数据段
mov ax,STACKS
mov ss,ax
mov sp,10h ;设置栈段
mov ax,0B800H ;设置显示段
mov es,ax
mov bx,0
mov bp,0
mov si,0 ;设置初始值
mov di,10h ;颜色数据,方便增加颜色方案
mov cx,3 ;如果3行就循环3,以此类推,有多少个颜色数据,就循环几次
s1:
push cx ;保存CX值
mov cx,16 ;重新赋值CX=16,循环16次
s:
mov al,ds:[bx] ;把字符传送到al
mov es:[bp+40h][si],al ;把字符传送到显示段
mov ah,ds:[di] ;把颜色属性值送入ah
mov es:[bp+41h][si],ah ;把颜色值送入显示段
inc bx ;bx+1,依次送入字符
add bp,2 ;bp+2,依次送入颜色值
loop s
inc di ;数据段+1 取得下1个 颜色值
mov bx,0 ;重头再读取字符
mov bp,0 ;获得各行行首
add si,160 ;换行
pop cx ;CX出栈
loop s1
MOV AH,4CH
INT 21H
CODES ENDS
END START
当然,还请各位,多多指教,有什么可以改进的,优化的地方! | | |
|
|
|
|
[第1楼]
[ 回复时间:2010-10-16 23:37 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-10-09 16:40 |
|
|
|
|
|
[第2楼]
[ 回复时间:2010-10-31 16:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2010-10-24 14:35 |
;第九章,实验9
assume cs:code
data segment
db 'welcome to masm!'
db 02h,24h,71h
data ends
sata segment
dw 8 dup (0)
sata ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
mov si,10h
mov ax,sata
mov ss,ax
mov sp,10h
mov ax,0b800h
mov es,ax
mov di,0
mov bp,7c0h ;屏幕中间的开始位置.
mov cx,3
s:push cx
mov ah,ds:[si] ;这个给颜色属性
mov cx,16
s1:mov al,[bx]
mov es:[bp+di],ax
add di,2
inc bx
loop s1
mov bx,0
inc si
add bp,160 ;换行
mov di,0
pop cx
loop s
mov ax,4c00h
int 21h
code ends
end start | | |
|
|
|
|
[第3楼]
[ 回复时间:2010-11-08 22:32 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-10-21 13:38 |
assume ds:data,cs:code
data segment
db 'welcome to masm!'
data ends
code segment
start:mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov bp,0
mov bx,0
mov cx,16 ;
s:mov al,ds:[bx]
mov ah,0000010b
mov es:[bp+720H],ax
mov ah,00100100b
mov es:[bp+7c0H],ax
mov ah,01110001b
mov es:[bp+860H],ax
add bx,1
add bp,2
loop s
mov ax,4c00h
int 21h
code ends
end start | | |
|
|
|
|
[第4楼]
[ 回复时间:2010-12-15 11:30 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2010-12-03 12:08 |
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,0b86eh
mov es,ax
mov bx,0
mov si,0
mov di,10h
mov cx,3
s0: mov dx,cx
mov cx,16
mov bx,0
s1: mov ah,ds:[di]
mov al,ds:[bx]
mov es:[si],ax
add si,2
add bx,1
loop s1
mov cx,dx
add di,1
loop s0
mov ax,4c00h
int 21h
code ends
end start | | |
|