标签:颜色 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