|
主题 : : 实验9 要命5小时 [待解决] |
回复[ 2次 ]
点击[ 282次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2013-03-25 22:17 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-02-11 16:28 |
assume cs:code,ds:data,es:table,ss:stack
data segment
db 'Welcome to MASM!'
data ends
table segment
dw 4000 dup (0)
table ends
stack segment
dw 10 dup (0)
stack ends
code segment
start:
mov ax,data
mov ds,ax
mov bx,0
mov ax,stack
mov ss,ax
mov sp,12
mov ax,0B800h
mov es,ax
mov bp,0
mov bp,0 ;bp 竖
mov ax,0
mov cx,0
mov ax,25
mov byte ptr ss:[0],2
div byte ptr ss:[0]
mov cl,al
sub cx,1
s0:
add bp,0A0h
loop s0
mov ax,0
mov di,0 ;di 横
mov ax,0A0h
div byte ptr ss:[0]
sub ah,ah
sub ax,010h
mov di,ax
mov ax,0
mov cx,16
s1:
mov al,ds:[bx]
mov es:[bp+di],al
mov es:[bp+0a0h+di],al
mov es:[bp+0140h][di],al
mov ah,02h
mov es:[bp+di+1],ah
mov ah,024h
mov es:[bp+0a0h+di+1],ah
mov ah,071h
mov es:[bp+0140h+di+1],ah
inc bx
add di,2
loop s1
mov ax,4c00h
int 21h
code ends
end start | | |
|
|
|
|
[第1楼]
[ 回复时间:2013-03-25 22:28 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-02-11 16:28 |
代码几十分钟就搞好了,调试却用了几个小时...啦啦啦! | | |
|
|
|
|
[第2楼]
[ 回复时间:2013-05-16 02:36 ]
[引用]
[回复]
[ top ] | |
荣誉值:424
信誉值:0
注册日期:2013-04-08 10:06 |
长过头了吧-.- 我就那个代码的位置想了几十分钟,, 输出的颜色位置老不一样,,不在正中间
assume cs:code
data segment
db 'w e l c o m e t o m a s m ! '
data ends
code segment
start: mov ax,data
mov ds,ax
mov ax,0b800H
mov es,ax
mov cx,16
mov bx,0
s: mov al,[bx]
mov es:[bx+64].8c0H,al
mov es:[bx+64].960H,al
mov es:[bx+64].0A00H,al
mov ah,00000010B ;或2h 写成2进制比较直观
mov es:[bx+65].8c0H,ah ;闪烁\背景R\G\B\高亮\前景R\G\B 1为开启 2为关闭
mov ah,01000010b ; 11111111B 则为闪烁高亮白字白背景
mov es:[bx+65].960H,ah
mov ah,01110001b
mov es:[bx+65].0A00H,ah
inc bx
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start | | |
|