实验9 根据材料编程

编程:在屏幕中间分别显示绿色,绿底红色、白底蓝色的字符串‘welcome to masm!’。

估计材料这么长(~ ̄(OO) ̄)ブ大家都没啥耐心去看,我总结了一下。

1、在内存区B8000H~BFFFFH区间中写入数据会显示在显示器上,还记得实验1的时候的图案吗。

2、显示器可以显示25行,每行80个字符。

3、一个字符要占2个字节,分别存放字符的askll码和属性(颜色啊等等)

4、显示区可分为8页。而第0页的内容在内存B8000H~B8F9H中

    在000~09F中对应显示器上的第一行(160个字节为1行)

    在0A0~13F对应显示器上的第二行

    如此类推。。。

5、而对应的列就是

    00~01为第一列

    02~03为第二列

因为每个字符都要两个字节,这样好理解写,如此类推。。。9E~9F对应80列

6、假设02H对应的是黑底绿色,‘A’的askll码为41H

则在B800:0000    41 02 00 00 00 00 00

这样会在第一行第一列显示'A'

7、至于对应的颜色是什么数字。自己理解下格式,书本给出了一堆二进制对应的例子。


分析程序:

首先要算出三种颜色对应的16进制数,其中

绿色:0000 0010    02h

绿底蓝色:0010 0100    24h

白底蓝色:0111 0001    71h


然后推出偏移量,算到中间:

第12行偏移:12*160    780h

第40列偏移:4eh

相加为7ceh,然后分别除上下,和对称左右整个程序就搞定了


assume cs:codesg,ds:data

data segment
	db 'welcome to masm!'
data ends

codesg segment
start:
	mov ax,data
	mov ds,ax	;定义ds为数据段
	mov bx,0
	mov ax,0B800H
	mov es,ax	;es为显示段
	
	mov bp,720h	;11行中间列开头,本来是72e的,但是为了中间对称
	mov cx,16	;16次循环
s1:	mov ax,[bx]
	mov es:[bp],ax
	mov byte ptr es:[bp+1],02h
	add bp,2
	inc bx
	loop s1
	
	mov bp,7c0h	;同上
	mov bx,0	;记得数据区的偏移要重新指向第一个字母
	mov cx,16
s2:	mov ax,[bx]
	mov es:[bp],ax
	mov byte ptr es:[bp+1],24h
	add bp,2
	inc bx
	loop s2
	
	mov bp,860h
	mov bx,0
	mov cx,16
s3:	mov ax,[bx]
	mov es:[bp],ax
	mov byte ptr es:[bp+1],71h
	add bp,2
	inc bx
	loop s3
	
	
	mov ax,4c00h
	int 21h
	
codesg ends

end start

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# 材料研发编程 ## 1. 背景介绍 材料的研发一直是工业发展的关键,因为材料的性质不仅决定了产物的品质,还决定了生产效率与成本。因此,科学家们需要不断地寻找新的材料,并研究相应的制造工艺,以实现更高效、更高品质的生产。 ## 2. 程序框架 材料研发的过程具有高度的科学性和实验性,需要用到大量的数据处理和模型分析。因此,一个完整的材料研发编程工具需要具备以下功能: - 支持对材料成分和特性的建模和仿真; - 提供可视化的数据处理和结果分析; - 拥有高度的扩展性和可定制性,以适应不同的研究方向和应用场景。 ## 3. 具体实现 下面我们将依次介绍如何使用Python语言实现该工具。 ### 3.1 数据预处理 数据预处理是材料研发的重要一环,因为实验数据往往十分复杂、冗余,需要进行处理和筛选。可以使用Python的`numpy`和`pandas`库,进行数据的读取、清理、统计和分析。例如,可以使用如下代码读取实验数据并统计分析: ``` python import numpy as np import pandas as pd # 读取数据文件 data = pd.read_csv('experiment.csv') # 清理数据 data = data.dropna() #去除缺失值 # 数据分析 mean = data.mean() #求平均值 std = data.std() #求标准差 corr = data.corr() #求相关系数矩阵 ``` ### 3.2 材料建模 材料的建模通常需要利用材料科学、物理学和化学等知识,根据实验数据和理论分析,建立材料的数学模型,以描述其性质和行为。可以使用Python的`scipy`和`numpy`库,进行复杂函数的运算和优化。例如,可以使用如下代码求解材料的光学性质: ``` python from scipy.integrate import quad import numpy as np # 计算光学性质 def optical_properties(intensity_func): result, _ = quad(intensity_func, 0, np.inf) return result # 光强分布函数 def intensity(x): return np.exp(-x**2) result = optical_properties(intensity) print(result) ``` ### 3.3 结果可视化 结果可视化是材料研发的重要环节,因为数据和模型往往需要以一种直观的方式呈现,以便科学家们更好地理解和分析。可以使用Python的`matplotlib`和`seaborn`库,进行数据可视化,包括线图、柱状图、散点图、热力图等。例如,可以使用如下代码绘制材料的热力图: ``` python import seaborn as sns import numpy as np # 生成数据 data = np.random.rand(10,10) # 绘制热力图 sns.heatmap(data) ``` ## 4. 总结 本文介绍了一个基于Python语言的材料研发编程框架,包括数据预处理、材料建模和结果可视化。这个框架可以帮助科学家们更好地管理和分析材料数据,加速材料研发的进程,并促进工业发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值