《汇编语言(3rd)》王爽 - 实验9

小编 2026-06-29 阅读:872 评论:0
; 将字符复制到目标区并设置对应的属性 ; 1、确定屏幕的中央 ; 80x25模式,每行 80 个字符 (每个字符两个字节,共 160 个字节) ; 我们的目标字符串刚好 16个字节,...
; 将字符复制到目标区并设置对应的属性
; 1、确定屏幕的中央
;   80x25模式,每行 80 个字符 (每个字符两个字节,共 160 个字节)
;   我们的目标字符串刚好 16个字节,再加上 16个字节的属性,则目标
;   字符串共需要 32 字节的空间,所以 字符应该从 (160 - 32) / 2 = 64
;   偏移下标开始。三行字符分别占屏幕 11,12,13 行。
; 2、确定三行字符的属性: 绿色: 02h, 绿底红色: 24h, 白底蓝色: 71h (根据
;   需要的颜色先求出对应的二进制,然后转 16 进制)
assume cs:code,ds:data,ss:stack
 
data segment
	db \'welcome to masm!\'
	db 02h,24h,71h
data ends
 
stack segment
	dw 8 dup (0)
stack ends
 
code segment
start:  
	; 表示行偏移
	mov si, 0
	mov di, 0

	mov cx, 3
	s0:	             ;三行循环

			mov ax, stack
			mov ss, ax
			mov sp, 16

			; 使用 ds 寄存器从 data 段取数据
			mov ax, data
			mov ds, ax

			; 使用 es 寄存器将数据放入目标地址
			mov ax, 0B800h
			mov es, ax

			; 取数据偏移
			mov bx, 0

			; 目标地址 行内水平偏移
			mov bp, 0

			push cx ; 外层循环入栈保护  --begin
			; 依次复制 16 个字符
			mov cx, 16
		s1:		     
			; 将字符复制到目标区并设置对应的属性
			mov al, ds:[bx] ; al 表示
			mov es:[bp + 640h + si + 64],al ; 640h = 160 * 10 对应的 16进制,即表示 11 行 - 垂直居中
								     ; 偏移 64 字节后水平居中
			mov ax, ds:[16 + di]
			mov es:[bp + 1 + 640h + si + 64], ax
			inc bx
			add bp, 2
		loop s1
		pop cx	; 外层循环入栈保护  --begin
		add si, 0a0h
		inc di
	loop s0
	mov ax,4c00h
	int 21h
	
code ends
end start

展示的效果为下图所示:
\"\"

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
标签列表