技术标签: 汇编语言 实验10 王爽 Linux内核学习 汇编补课
1.显示字符串
编写一个通用的子程序,向调用者提供与显存无关的接口,方便调用者在窗口指定位置显示字符串的功能。
assume cs:code
data segment
db 'Welcome to masm!',0 ;要显示的字符串
data ends
code segment
start: mov dh,8 ;行号
mov dl,3 ;列号
mov cl,2 ;指定显示属性(颜色、闪烁等),此处为绿色显示
mov ax,data
mov ds,ax
mov si,0
call show_str ;调用子程序
mov ax,4c00h
int 21h
;子程序
show_str: mov ax,0b800h ;显存的段地址
mov es,ax
mov al,0a0h ;0a0h表示每行的字符数(每行80个字符,每个字符需占用2个字节,
;其中包含属性字节),用于计算用户指定行的起始地址
mul dh ;计算得到指定行偏移地址
mov di,ax
mov al,2 ;用于计算用户指定行的起始列位置
mul dl
add di,ax ;最后得到需要显示字符的具体偏移地址,并赋给di
put: push cx ;由于在子程序中需要使用cx寄存器,这里保存cx中的值(字体的属性)
mov cl,ds:[si] ;获得需要显示的字符
mov ch,0
jcxz ok ;若cx=0,则转到ok处,返回,即表示到达了字符串末尾
mov es:[di],cl
pop cx
mov es:1[di],cl
inc si
add di,2
jmp short put
ok: ret ;子程序返回
code ends
end start
运行结果:
2.解决除法溢出的问题
assume cs:code
code segment
mov ax,4240h
mov dx,000fh
mov cx,0ah
call divdw
mov ax,4c00h
int 21h
;子程序
divdw: push bx ;保存主程序中可能使用的寄存器
push ax ;将ax暂存,用于高16位除法
mov ax,dx
mov dx,0
div cx
mov bx,ax ;将高16位除法所得商暂存bx中
pop ax ;将ax出栈,用于低16位除法
div cx
mov cx,dx ;将余数保存在cx中
mov dx,bx ;将结果的高16位保存在dx中
pop bx ;将子程序开始保存的寄存器还原,以确保主程序的正确
ret
code ends
end
初始状态:
子程序返回前:
弹簧关节可以将两个刚体连接到一起。Connected Spring:连接刚体:Anchor:锚点;Spring:弹簧;Damper:阻尼;Break Force:断开力:Break Torque:断开扭矩。以上参数详解见固定关节。Min Distance:最小距离:该项用于设置弹簧启用后的最小距离值,如果两个对象之间的当前距离与初始距离的差大于此值,则不会开启弹簧。
德沃夏克右手键盘适合体验If you ever read about user experience, you’ll probably hear people saying good design is invisible. This means a good design is intuitive and nonintrusive, so the user can pay attention t...
关于为什么数据变动bu’chong不重新渲染, 官网已经介绍了, 这里就不再多说:下面主要记录一下具体的操作代码:组件基本代码:<style lang="sass"></style><template><div> <div>
一、前言 对于不使用trident的人来说,使用基本的storm spout,bolt操作,需要理解storm的ack机制,保证消息的完整性,Storm 提供了三种不同层次的消息保证机制,分别是 At Most Once、At Least Once 以及 Exactly Once。消息保证机制依赖于消息是否被完全处理。 怎样才认为消息被完全处理?每个从 Spout发出的 Tup...
实现效果:父组件:import GameTabAll from './GameTabAll'; const onSelect = (arr) => { console.log('onSelect=' + arr); onSelectTags(arr); };//taglist:所有标签列表//tagid:默认选中标签//onSelect:乘接子组件修改后返回值<GameTabAll options={taglist} tagid={JSON.
如果你熟悉avalon,使用过data-include-rendered 和 data-include-loaded 等回调方法,那么你会很好地理解React组件的各个生命周期。说白了其实就是React组件状态变化前后的时间点,我们可以利用生命周期的接口在相应的时间点做回调操作。React的官方文档提及了如下几个组件的生命周期:Mounting/组件挂载相关:comp...
1. 第三方paramiko模块下载:https://github.com/paramiko/paramiko 2. paramiko源码包演示:运行demo.py文件远程登陆 3. 通过修改paramiko源码,主要是修改demo.py文件和interactive.py开发运维审计堡垒机 4. 堡垒机原理 堡垒机有一个公共账号,所...
从阿里云的 虚拟主机迁移后 很多东西需要自己部署 这里部署了一个 awstats 用于分析网站运行情况CGI开启Awstats 需要依赖 cgi 组件需要先打开 CGIa2enmod cgi配置 awstatscp awstats /usr/local/awstats在目录下执行 perl awstats_configure.pl 配置awstats似乎是因为版本较旧的原因他...
(一)、环境的配置1.ros环境的安装,可直接参开wiki.ros2.building ORB_SLAM2 git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM23.编译cd ORB_SLAM2chmod +x build.sh. /build.sh4.Monocular Examp
import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class JdkProxy implements Invo...
所有compose文件统一命名 docker-compose.yaml所有启动 docker-compose up -d停止 docker-compose down1:mongodbversion: '2'services: mongo: image: mongo:4.4.0 restart: always environment: - TZ=Asia/Shanghai ports: - 27017:27017 vol
10月21日消息,昨日Interbrand发布了2021年全球最佳品牌排名,该榜单主要考虑了企业的品牌价值和增长速度,能够进入该榜单的品牌无不是行业翘楚。今年苹果、亚马逊、微软位列榜单前三,热门品牌特斯拉位列第14,中国品牌仅有华为进入榜单,位列第85名。对于中国的企业来说,这是一个巨大的打击,苹果已经连续9年蝉联榜首,三星今年终于进入前五,中国企业却只有一家华为进入榜单,而且还没进入前五十名。其他企业需要认真考虑,国内企业为什么只有华为能够进入榜单。小雷认为,华为能够成为国内高科技企业的代表,