|
主题 : : 实验9,debug通过,大家一起指正 [待解决] |
回复[ 5次 ]
点击[ 218次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2010-12-10 09:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-10-29 23:22 |
assume cs:code,ss:stack,ds:data
data segment
db 'welcome to masm!'
db 02h,24h,71h ;三种属性
data ends
stack segment
db 16 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
mov ax,8000h
mov es,ax ;显存段地址
mov bx,0
mov si,16 ;属性数据地址
mov di,0b80h ;显存第一个字节位置
mov cx,3
s0: push cx
mov cx,16
s: mov ax,[bx]
mov es:[di],ax ;一个字节数据
mov ax,[si]
mov es:[di+1],ax ;一个字节属性
inc bx ;下一个数据
add di,2 ;下一个数据显存
loop s
inc si ;下一个属性
add di,160 ;下一行显存
pop cx
loop s0
mov ax,4c00h
int 21h
code ends
end start | | |
|
|
|
|
[第1楼]
[ 回复时间:2010-12-10 10:30 ]
[引用]
[回复]
[ top ] | |
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19 |
① mov ax,8000h;这句应为mov ax,0b800h吧
② 我测试结果,第一行正确, 第二行,第三行错位,而且显示乱字符。 | | |
|
|
|
|
[第2楼]
[ 回复时间:2010-12-10 15:13 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-10-29 23:22 |
|
|
|
|
|
[第3楼]
[ 回复时间:2010-12-10 21:27 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-10-29 23:22 |
没注意bx的值,正面是改正的,应该没问题了
assume cs:code,ss:stack,ds:data
data segment
db 'welcome to masm!'
db 02h,24h,71h
data ends
stack segment
db 16 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov si,16
mov di,0ae0h
mov cx,3
s0: push cx
mov bx,0
mov cx,16
s: mov al,[bx]
mov es:[di],al
mov al,[si]
mov es:[di+1],al
inc bx
add di,2
loop s
inc si
add di,128
pop cx
loop s0
mov ax,4c00h
int 21h
code ends
end start | | |
|
|
|
|
[第4楼]
[ 回复时间:2010-12-10 23:32 ]
[引用]
[回复]
[ top ] | |
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19 |
|
|
|
|
|
[第5楼]
[ 回复时间:2010-12-11 13:47 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-10-29 23:22 |
|
|