标签:颜色 segment 源程序 一个 tst 任务 数值 image highlight
实验任务一:
assume cs:code, ds:data
data segment
db ‘Nuist‘
db 5 dup(2)
data ends
code segment
start:
mov ax, data
mov ds, ax
mov ax, 0b800H
mov es, ax
mov cx, 5
mov si, 0
mov di, 0f00h
s: mov al, [si]
and al, 0dfh
mov es:[di], al
mov al, [5+si]
mov es:[di+1], al
inc si
add di, 2
loop s
mov ah, 4ch
int 21h
code ends
end start
每一行代码的含义如下:
mov cx, 5 循环五次
mov si, 0 初始化 si
mov di, 0f00h 初始化 di
s: mov al, [si] 取数据段内对应字符
and al, 0dfh 0dfh的二进制形式为:1101 1111,and操作后实现的功能:将字符改为大写
mov es:[di], al 写入显存
mov al, [5+si] 为 al 赋数据段内的值
mov es:[di+1], al 为先前写入字符的字的高位赋值,以此附以字符颜色
inc si si + 1,移向数据段下一字符
add di, 2 di + 2,移向显存下一个字
loop s 循环执行
汇编、连接、运行后得到的结果:

使用debug工具对程序进行调试,执行到程序返回前,即line27之前,观察结果。

将db 5 dup(2) --> 改成: db 2,3,4,5,6后,重新汇编、链接、运行,观察结果。

猜测数值的作用是设置字体的颜色
实验任务二:
assume cs:code, ds:data
data segment db ‘Nuist‘ db 5 dup(2)data ends
code segmentstart: mov ax, data mov ds, ax
mov ax, 0b800H mov es, ax
mov cx, 5 mov si, 0 mov di, 0f00hs: mov al, [si] and al, 0dfh mov es:[di], al mov al, [5+si] mov es:[di+1], al inc si add di, 2 loop s
mov ah, 4ch int 21hcode endsend start
标签:颜色 segment 源程序 一个 tst 任务 数值 image highlight
原文地址:https://www.cnblogs.com/haozhenglong/p/14047313.html