技术标签: 汇编语言 实验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
初始状态:
子程序返回前:
ribbon重试次数=MaxAutoRetries*(MaxAutoRetriesNextServer+1)
前后端 token 的使用
目录一、简介二、底层装配技术简述三、实现1、激活自动装配 -` @EnableAutoConfiguration`2、实现自动装配 - `XXXAutoConfiguration`3、配置自动装配实现 - ` META-INF/spring.factories`4、测试四、总结一、简介在 Spring Boot 场景下,基于约定大于配置的原则,实现 Spring 组件自动装配的目的。二、底...
1. 原理二级缓存原理:Mybatis的二级缓存是指mapper映射文件。二级缓存是多个sqlSession共享的,其作用域是mapper下的同一个namespace。在不同的sqlSession中,相同的namespace下,相同的查询sql语句并且参数也相同的情况下,会命中二级缓存。如果调用相同namespace下的mapper映射文件中的增删改SQL,并执行了commit操作。此时会清空该namespace下的二级缓存。2. 同一张表的 xml 和 接口 文件copy 到自己的目录下,有自己
java虚拟机内存监控工具jps,jinfo,Jstack,jstat,jmap,jhat使用基于Sun HotSpot JVM 这里将介绍几款sun hotspot jvm 自带的监控工具:请确保java_home/bin配置到path环境变量下,因为这些工具都在jdk的bin目录下 jps(JVM Process Status Tool):JVM机进程状况工具用来查看基于HotSpot JV...
目录1.UnityPlayground小游戏1.创建玩家2.添加物品3.添加背景预制件1.UnityPlayground小游戏1.创建玩家 打开项目: 打开前面课程中已经准备好的 playground 项目 创建新场景: project 窗口 --> Assets/scenes 文件件,右键 create scene ,创建只带有一个 camera 对象的场景,重命名为 PlaneAsteroid 添加玩家飞船: projec
Android 开机SIM卡变更提示信息始终为卡1的问题解析在高通平台上,更换SIM卡后开机会有一个提示信息。在双卡项目上遇到了这样一个问题,当用户只插入一张卡2时,开机SIM变更提示显示为卡1。如图所示:这里主要是分析为什么这个SIM卡信息会显示错误,所以不赘述弹出过程,直奔主题:vendor/qcom/proprietary/qrdplus/Extension/apps/PhoneFeatur...
修改hosts文件提示没有权限保存怎么办?很多小伙伴在配置ip和域名关联是都碰到了这个问题,下面让我们来看一下解决方法。进入该文件的地址,此处是:C\Windows\System32\drivers\etc,右击hosts选择属性。选择安全选项—选择当前的用户----点击编辑我这里选择的是完全控制–点击确定就完成啦。希望能对你的问题有所帮助。...
Android App 连接ble蓝牙模块并进行通讯对于蓝牙的基础知识我在这里就不赘述了,直接来干货,讲解连接ble蓝牙模块并进行通讯,通讯使用广播模式,结尾附上一个项目的demo。精彩内容即将开始:一、要使用蓝牙功能,首先要打开权限,在AndroidManifest.xml文件中配置权限信息,如下:<!--蓝牙权限--> <uses-permission and...
Hadoop的HA主要是HDFS的HA和YARN的HA1、HDFS高可用HA(双NameNode消除单点故障)Hadoop2.0之前,在HDFS集群中NameNode存在单点故障(SPOF)。如果出现故障,如机器崩溃或机器需要升级维护,这时可通过HA方式将NameNode很快的切换到另外一台机器(1)HDFS的HA注意点 1)元数据管理方式需要改变 ...
git 在pull或者合并分支的时候有时会遇到这个界面。可以不管(直接下面3,4步),如果要输入解释的话就需要:1.按键盘字母 i 进入insert模式2.修改最上面那行黄色合并信息,可以不修改3.按键盘左上角"Esc"4.输入":wq",注意是冒号+wq,按回车键即可
简介上一节我们完成了从 0 开始搭建一个企业级 React 项目的全部内容,项目是有了,但是我们一直都没有近距离接触过 React,所以接下来我们就快速撸一遍 React 官方文档内容,弄清楚一些概念性的东西,为后面的源码分析章节做铺垫。知识点项目搭建核心概念高级指引API 指引hook 指引后面这几节都比较轻松,因为我们基本上把 React 官网:https://reactjs.org/ 的内容跑一遍。让我们开始吧!项目搭建我们直接 clone 一个前面我们搭建的基础项目,然后取