首页 > TAG信息列表 > equ

段描述符

在保护模式中,不可避免的要用到数据段和代码段,堆栈段。 在menuetos32系统中,这些段的描述符定义在sys32.inc中的第122行到243行GDT之中。其中ring3的代码段和数据段如下:     ring3_code_l:       dw 0xffff       dw 0x0000       db

「Gym103069C」Random Shuffle

题目 点这里看题目。 分析 关键观察在于,这道题的 \(n\)​ 居然有一个较大的下界!!!正常题目 \(n\)​ 的最小值一般都是个位数,这道题样例中 \(n=50\)​??说明这道题思路必然是通过 \(a\)​ 得到关于 \(x\)​​ 的若干位的限制,然后暴力枚举检验。这样才能解释 \(n\)​ 为什么无法取到较小

X86系统中断处理与特权级转移 软中断实现系统调用 用户态程序使用软中断扎内核调用内核态程序

不会,中断整体是由 处理器 与 8259A中断控制器 共同管理的,虽然8259A可以不停的将中断请求发送给处理器,但是处理器有屏蔽中断的开关,只要当前中断处理还没有完成,就可以将IF置0 即不接受其他中断请求。 处理器没有中断优先级的概念,它只有响应与不响应的概念,当在执行中断处理时

基于8086的电子秒表系统仿真设计1-设计思路并实现

设计思路,可以参考如下设计思路并实现: 设计一个电子秒表,要求完成开始计时、停止计时及其计时复位等功能,计时时间精确到毫秒,控制方式自行设计。 设计一个电子秒表,要求完成开始计时、停止计时及其计时复位等功能,计时时间精确到毫秒,控制方式自行设计,Proteus仿真实现。 ;前两个主要是

实现putchar

1.在lib/kernel/print.S 文件中实现put_char() 2.思路 ①我们前面在全局描述符表GDT中定义的第三个描述符,就是我们的显存段描述符,我们往显存段中写入内容,便会输出到屏幕上。 ②如果接受到的这个字符是回车/换行/删除键,那么需要特殊处理 ③如果当前整个屏幕满了,那么需要整体往

自适应均衡化案例代码 +结果

直接上代码 普通均衡化 import cv2 import matplotlib.pyplot as plt img=cv2.imread(dir,0) equ=cv2.equalizeHist(img) img_rgb = cv2.cvtColor(equ, cv2.COLOR_BGR2RGB) plt.imshow(img_rgb) plt.show() plt.hist(equ.ravel(),256)# 直方图 plt.show() 结果 自适应均衡

提高模拟赛Day8T1求中位数

提高模拟赛Day8T1求中位数 目录题目思路代码 题目 \(n\)个数\(a_{1\ldots n}\),两两做差(大减小),得到数组\(b\),求\(b\)的中位数. 思路 对原数组排序,二分枚举中位数\(mid\),求有多少个做差数组中比\(mid\)大/小的数分别由多少个,时间复杂度是\(O(n\log^2n)\),可以卡过去. 正解

串口通信作业

目录 一. 了解串口协议和RS-232标准,以及RS232电平与TTL电平的区别;了解"USB/TTL转232"模块(以CH340芯片模块为例)的工作原理。二. 安装 stm32CubeMX,配合Keil,使用寄存器方式(汇编或C,不限) 或HAL库这两种方式,完成下列任务:三.在没有示波器条件下,可以使用Keil的软件仿真逻辑分析仪功

stm32CubeMX(Hal库)流水灯和stm32的串口通信

目录 流水灯点亮 1.建立工程 2. 选择STM32F103C8芯片 3.修改debug  4.修改HSI  5.设置时钟RCC 6.GPIO output level  ​  7.建立项目 8.烧录 9.结果   串口通信 创建新工程 添加汇编代码 编译生成hex文件 烧录与接受 keil5观测波形    1.环境设置  2.观察波形  串口

STM32CubeMX与串口通信

一、软件的安装 由于软件是用JAVA编写,需要提前使用JDK环境 STM32CubeMX官网链接:https://www.st.com/en/development-tools/stm32cubemx.html#get-software 进入后如图所示:      拉到网页底下:     根据不同的操作系统来选择不同后缀的安装下载方式,如果是Linux系统选择Lin,Mac

STM32的USART串口输出”hello world“和输出波形

文章目录 一、一、编写代码二、结果显示三、keil下的波形四、总结五、参考链接 一、一、编写代码 1.创建新工程并编写代码 首先创建新的工程, 创建完工程后,添加 asm 汇编文件,并添加如下的代码 ;RCC寄存器地址映像 RCC_BASE EQU 0x40021000 R

从认识串口到串口通讯

目录 一、串口协议和RS-232标准 二、TTL电平 三、RS232电平 四、USB/TTL转232"模块(以CH340芯片模块为例)的原理 五、使用stm32cubeMX生成工程及串口烧录HEX文件 六、串口通信 七、总结 八、参考文献 一、串口协议和RS-232标准 串口通信指串口按位(bit)发送和接收字节。尽管比特字

第四章 保护模式入门

第四章 保护模式入门 实模式 什么是实模式 实模式,又叫实地址模式.从80386开始,CPU有三种工作模式:实模式、保护模式和虚拟8086模式。80286开始的CPU引入保护模式,实际上,实模式概念是在保护模式推出之后为了区别保护模式之前的8086CPU工作模式才有的,在8086时代CPU工作模式只有一种,自

80286 与 80386,实模式与保护模式切换编程

学习自 狄泰软件 1 EAX与AX不是独立的,EAX是32位的寄存器,而AX是EAX的低16位。 2 or 对两个操作数进行逻辑(按位)或操作 80286 虽然有了保护模式,但其依然是 16 位的 CPU ,其通用寄存器还是 16 位宽,但其与 8086 不同的是其地址线由 20 位变为了 24 位,即寻址空间变成了 24 次方,等于

pm.inc

自用 ; 描述符图示 ; 图示一 ; ; ------ ┏━━┳━━┓高地址 ; ┃ 7 ┃ 段 ┃ ; ┣━━┫ ┃ ; 基 ; 字节 7 ┆ ┆ ┆ ; 址 ; ┣━━┫ ② ┃ ; ┃ 0 ┃ ┃ ; ------ ┣━━╋━━┫

STC大作业创新设计-乒乓游戏改进-代码

添加了STARTUP.A51,只有main.c\main.h进行了改动,其余和网站提供的内容一致 STARTUP.A51 $NOMOD51 ;------------------------------------------------------------------------------ ; This file is part of the C51 Compiler package ; Copyright (c) 1988-2005 Keil Ele

题解 Omeed

传送门 差了一点没想到正解…… 首先单次询问的 \(O(n)\) 写法很好想,考虑如何优化 首先基础分区间求和即可 然后那个连击分的话,是一个关于 \(f_i\) 和 \(f_{i-1}\) 的柿子 \[f_i = p*(f_{i-1}+1)+(1-p)*f_{i-1}*t \]移个项 \[f_i = (p+t-p*t)f_{i-1}+p \]就表示成了一个 \(f_i = k

11.实模式到保护模式(中)

试水产品,市场反响不错,继续推出后续产品 X:处理器的排名,例如:8086、80286、80386等等 inc.asm ; Segment Attribute//段属性定义 DA_32 equ 0x4000 DA_DR equ 0x90 DA_DRW equ 0x92 DA_DRWA equ 0x93 DA_C equ 0x98 DA_CR equ 0x9

保护模式中描述符的属性

描述符属性 一致与非一致 当转移的目标是一个特权级更高的一致代码段,当前的 特权级会被延续下去而向特权级更高的非一致代码段的转移会引起常规保护错误,除非使用调用门或者任务门。如果系统代码不访问受保护的资源和某些类型的异常处理,它可以被放在一致代码段中。为避免低特

07、汇编语言--常量

常量表达 常量(Constant)是程序中使用的一个确定数值,在汇编语言中有多种表达形式。 常数 常数指由十、十六和二进制形式表达的数值,各种进制的数据以后缀字母区分: 在实际应用中,通常使用十进制表达数值,使用十六进制表达存储器地址、BCD码数值、数值的内部编码或者指令代码等,使用二进

进入32位保护模式之路

; haribote-os boot asm ; TAB=4 BOTPAK EQU 0x00280000 DSKCAC EQU 0x00100000 DSKCAC0 EQU 0x00008000 ; BOOT_INFO CYLS EQU 0x0ff0 ; 设定启动区 LEDS EQU 0x0ff1 VMODE EQU 0x0ff2 ; 关于颜色数目的信息 颜色的位数 SCRNX EQU 0x0ff4 ; 分辨率

使用nasm写程序

hello.asm 代码如下:(我也不知道对不对了,但是能跑起来...)extern ExitProcess extern GetStdHandle extern WriteConsoleA extern AttachConsole STD_OUTPUT_HANDLE equ -11 INVALID_HANDLE_VALUE equ -1 ATTACH_PARENT_PROCESS equ -1 global Start   section .data

使用nasm写程序

hello.asm 代码如下:(我也不知道对不对了,但是能跑起来...)extern ExitProcess extern GetStdHandle extern WriteConsoleA extern AttachConsole STD_OUTPUT_HANDLE equ -11 INVALID_HANDLE_VALUE equ -1 ATTACH_PARENT_PROCESS equ -1 global Start   section .data

学 Win32 汇编[13]: 定义符号常量(=、EQU、TEXTEQU)

学 Win32 汇编[13]: 定义符号常量(=、EQU、TEXTEQU) =、EQU、TEXTEQU 功能差不多, 它们定义的符号都将在编译前辈替换成它们指定的常量值. 相比之下 EQU 更好用些.= 举例; Test13_1.asm .386 .model flat, stdcall include windows.inc include kernel32.inc includ

40 操作系统-从bootloader到内核雏形

参考 https://blog.51cto.com/13475106/category6.html及狄泰软件相关课程   一.整体的设计 从上图可以得到一个问题,为什么不能从boot直接加载kernnel,并跳转运行?该设计的思路1.boot必须小于512字节,无法完成过多功能2.kernel需要运行于32