鱼C论坛

 找回密码
 立即注册
查看: 2158|回复: 4

实验9的问题

[复制链接]
发表于 2012-1-7 00:51:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
下面是我改的程序
assume cs:code
data segment
db 'welcome to masm!'
db  2h,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,[si]               ;将 ds:si处的数据复制到al
        mov es:[di],al          ;将al中的数据复制到es:【di】中
        inc di                      ;将es偏移地址加1为存放颜色做准备
        mov al,[bx]             ;将颜色数据复制到al
        mov es:[di],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中却能查看显示在屏幕中的字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-7 13:02:52 | 显示全部楼层

回帖奖励 +1 鱼币

本帖最后由 小马过河 于 2012-1-7 13:04 编辑
assume cs:dmd,ds:sjd,ss:dzd
sjd segment
db 'woairenminbi  ok' 
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:[si]  ;取出代码段数据放入AL,字节型数据
     mov es:[bx+di],al  ;将AL中数据放入附加段位置中
         push bx      ;压栈BX
         mov bx,dx
         mov al,ds:[bx]  ;取数据段第17个字节数据
         
         pop bx
         mov es:[bx+di+1],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  下面是我上午写了半天的代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-1-7 20:04:28 | 显示全部楼层
感谢你的辛苦    我已经了解了
http://bbs.fishc.com/forum.php?m ... mp;page=1#pid122805
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-19 19:43:36 | 显示全部楼层

回帖奖励 +1 鱼币

那,我先谢谢这一鱼币了。哈哈~~稍后来解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-19 19:56:32 | 显示全部楼层
mov bx,16    偶数位表示的是属性,奇数位表示的是字符的ASC码。
我回家看看,回头再来答复,在这里我看的头都晕了。不知道怎么回事儿,心静不下来了。
我回家亲自动手做做。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 16:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表