继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

汇编调用显示缓冲地址显示三行字符串

九七
关注TA
已关注
手记 3
粉丝 3
获赞 21

根据王爽《汇编语言》一书中第九章实验9作业要求,实现输出三行字符串
在显示缓冲地址b8000h~bffffh中,每个字符占用两个字节,第一个字节为该字符的ascii码,第二个字节为显示信息码,具体如下:
7 6 5 4 3 2 1 0
闪烁 R G B 高亮 R G B
(背景) (字)

每一行有80个字符(00-9f)
根据以上提示,实现“welcome to imooc”三行的不同颜色不同打印
参考代码如下

assume cs:codesg,ds:datasg,ss:stacksg
stacksg segment
    db 0,0,0,0,0,0,0,0
stacksg ends

datasg segment
    db 'Welcome to imooc'
    db 71h,24h,02h
datasg ends

codesg segment

doit:
    mov al,ds:[di]
    mov es:[bx],al
    inc bx
    inc di
    mov es:[bx],ah
    inc bx
    loop doit
    mov bx,es
    add bx,0ah
    mov es,bx
    jmp s

start:  
    mov ax,datasg
    mov ds,ax
    mov ax,stacksg
    mov ss,ax
    mov sp,0
    mov ax,0b800h
    mov es,ax
    mov cx,5
    push cx

s:  pop cx
    mov si,0eh
    add si,cx
    mov ah,ds:[si]
    dec cx
    jcxz endit

    push cx
    mov cx,16
    mov di,0
    mov bx,0
    jmp doit

endit:  
    mov ax,4c00h
    int 21h

codesg ends
end start
打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP