实验9的问题
下面是我改的程序assume cs:code
data segment
db 'welcome to masm!'
db2h,24h,74h
data ends
stack segment
dw 8 dup(0)
stack ends
code segment
start:mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,16
mov ax,0b872h
mov bx,16 ;bx索引颜色
mov cx,3
s: push cx
push ax
mov si,0 ;si索引数据段中的数据
mov di,0 ;dx索引显存中的地址
mov es,ax ;显存段地址B872 屏幕中间
mov cx,10h
s1: mov al, ;将 ds:si处的数据复制到al
mov es:,al ;将al中的数据复制到es:【di】中
inc di ;将es偏移地址加1为存放颜色做准备
mov al, ;将颜色数据复制到al
mov es:,al ;将颜色复制到显存中
inc di ;为下一个显存地址准备
inc si ;下一个数据单元
loop s1
pop ax
pop cx
add ax,0ah ;把段地址指向下一行
inc bx ;下一个字符属性
loop s
mov ax,4c00h
int 21h
code ends
end start
为什么我执行程序后会报Invalid keyboard code specified运行时在屏幕上也没有字符显示错在debug中却能查看显示在屏幕中的字
本帖最后由 小马过河 于 2012-1-7 13:04 编辑
assume cs:dmd,ds:sjd,ss:dzd
sjd segment
db 'woairenminbiok'
db 4ah,0ah,7ch
sjd ends
dzd segment
dw 8 dup(0)
dzd ends
dmd segment
cxks: mov ax,sjd
mov ds,ax
mov ax,dzd
mov ss,ax
mov sp,10h
mov bx,0
mov ax, 0b872h
mov es,ax
mov di,0
mov si,0
mov dx,16
mov cx,3
s1: push cx ;压栈CX
mov cx,16 ;十六个字母循环16次
s2:mov al,ds:;取出代码段数据放入AL,字节型数据
mov es:,al;将AL中数据放入附加段位置中
push bx ;压栈BX
mov bx,dx
mov al,ds:;取数据段第17个字节数据
pop bx
mov es:,al
inc si
add di,2
loop s2
inc dx
mov si,0
mov di,0
add bx,160
pop cx
loop s1
mov ax,4c00h
int 21h
dmd ends
end cxks下面是我上午写了半天的代码 感谢你的辛苦 我已经了解了
http://bbs.fishc.com/forum.php?mod=viewthread&tid=12876&page=1#pid122805 那,我先谢谢这一鱼币了。哈哈~~稍后来解答 mov bx,16 偶数位表示的是属性,奇数位表示的是字符的ASC码。
我回家看看,回头再来答复,在这里我看的头都晕了。不知道怎么回事儿,心静不下来了。
我回家亲自动手做做。
页:
[1]