- 博客(37)
- 收藏
- 关注
原创 汇编语言学习(六)—— 转移指令
转移指令用于控制程序的执行流程,使其能够跳转到不同的代码段执行。根据转移的范围和是否修改段寄存器CS,转移指令可以分为段内转移和段间转移(远转移)。段内转移仅修改指令指针IP,而段间转移则同时修改代码段寄存器CS和指令指针IP。jmp指令是一种无条件转移指令,可以只修改IP,也可以同时修改CS和IP。根据跳转的距离和是否修改段寄存器, jmp指令可以分为三种类型:段间转移 、 段内短转移和转内近转移。
2025-06-29 14:59:16
515
原创 汇编语言学习(五)——内存寻址方式
思路:由于大写字母的ASCII码第5位为0,而小写字母的第5位为1,因此可以通过位操作(如AND和OR指令)来实现大小写转换。该方式通过将 bx 寄存器的值与一个常量(idata)相加,计算出内存单元的偏移地址。在汇编程序中,用“......”的方式指明数据是以字符的形式给出的,编译器将把它们转化为相对应的ASCII码。:这些寄存器用于存储段地址,通常与基址寄存器结合使用,以生成完整的内存地址。(Base Pointer):通常用于存储堆栈段中的偏移地址,段地址默认为SS。
2025-06-22 11:56:02
793
原创 汇编语言学习(四)——汇编语言程序
a.在汇编源程序中,如果在“[]”里用一个常量idata直接给出内存单元的偏移地址,在“[]”的前面显式地给出段地址所在的段寄存器;mov ax,[idata] 代表mov ax,[1] 、mov ax,[2] 、mov ax,[3] 等;一个完整的内存单元,需要两种信息:a.内存单元的地址(段地址:偏移地址),b.内存单元的长度(或者字节);b.如果在“[]”里用寄存器,则段地址默认为ds,可以不显示的给出段地址所在的段寄存器;[...]的默认地址为ds,偏移地址为“...”;
2025-06-14 15:46:43
898
原创 汇编语言学习(三)——DoxBox中debug的使用
Debug的主要功能包括查看和修改寄存器内容、查看和修改内存内容、将内存中的机器指令翻译成汇编指令、执行机器指令、以汇编指令格式写入内存等。从段地址1000和偏移地址0开始显示内存内容,结束位置在段地址1000和偏移地址1f。从 DS 段寄存器中的段地址和偏移地址 100 开始显示内存内容。d 段地址:偏移地址 -----------------查看。u 段地址:偏移地址 ------------查看对应的汇编指令。指定段地址和偏移地址。e 段地址:偏移地址 数据(机器码)-------写入。
2025-06-07 21:47:00
465
原创 汇编语言学习(二)——寄存器
在8086 CPU中,通用寄存器共有四个,分别是 AX、BX、CX 和 DX,它们通常用于存放一般性的数据,均为 16 位寄存器,可以存储两个字节的数据。8086的运算器最多一次可以处理16位数据,采用两个16位地址(段地址、偏移地址)合成一个20位的物理地址;区分字节和字:一个字由两个字节组成,高位字节存储在低地址单元,低位字节存储在高地址单元。堆栈增长方向:堆栈是向下增长的,即每次入栈时,SP 会减小,出栈时 SP 会增大。2、BX:通常用作基址寄存器,用于间接寻址,即在内存地址中作为偏移量的一部分。
2025-06-02 11:43:07
810
原创 汇编语言学习(一)——汇编语言入门
操作码用于指示计算机执行的操作类型,如算术运算、逻辑运算或数据移动等,而地址码则指定操作对象的位置或目标地址。1. 定义:机器语言是机器指令的集合,通常由二进制代码(0和1)组成,是计算机硬件能够直接理解的最底层语言,也被称为机器码或机器语言。数据:计算机处理的对象,是执行指令时需要操作的原始信息。3.机器语言指令:通常由操作码和操作数组成,其中操作码表示要执行的操作,操作数表示操作对象或地址。在计算机中,数据和指令都是以二进制形式存储的,因此从硬件的角度来看,它们之间并没有本质区别。
2025-05-24 20:44:35
950
原创 进程和线程
进程(Process),是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度的一个独立单位。注意:程序和进程之间的区别(程序是静态的,就是个存放在磁盘里的可执行文件,就是一系列的指令集合;进程是动态的,是程序的一次执行过程。
2023-12-04 22:35:19
170
原创 volatile关键字
volatile是“易变的”的意思,当使用volatile修饰一个变量时,即表示这个变量的值随时都有可能发生改变,因此编译器在编译的时候对该变量的存取操作不能进行优化,即告诉编译器每次存该变量的时候都要从内存中去存取而不是使用其在之前寄存器中的变量。(2)不可优化性:volatile告诉编译器,不要对我这个变量进行各种激进的优化,甚至将变量直接消除,保证程序员写在代码中的指令,一定会被执行;(1)中断:中断服务程序中若修改其他程序中使用的变量,需使用volatile关键字;(1)读变量:内存->寄存器;
2023-11-04 21:17:10
213
原创 sizeof()和strlen()区别
1.sizeof是单目运算符,用来计算数据类型所占空间的大小,单位为字节,返回值与参数的类型有关,在编译时就已经计算好了;strlen函数返回的是在字符串中‘\0’前面出现的字符个数(不包含‘\0’)注意:字符串以‘\0’作为结束标志,strlen函数的返回值为size_t,是无符号的。注意:strlen函数遇到\0即返回\0之前的字符串长度。
2023-11-03 22:35:09
180
原创 C++11多线程编程
lock_guard类模板主要是通过RALL的方式,对其管理的互斥量进行了封装,在需要加锁的地方,只需要实例化一个lock_guard,调用构造函数成功上锁,出作用域前,lock_guard对象要被销毁,调用析构函数自动解锁,可以有效避免死锁问题。wait_for()函数和wait()的功能是一样的,只不过多了一个阻塞时长,假设阻塞的线程没有被其他线程唤醒,当阻塞时长用完之后,线程就会自动解除阻塞,继续向下执行。promise:是一个类模板,用于在一个线程中产生一个值,并在另一个线程中获取这个值。
2023-11-02 21:56:45
182
原创 linux多线程
注意:回收的数组不能使用子线程的栈区,当线程被回收,线程的栈区资源也会被回收,但是可以将传出的数据存储在全局数据区和堆区数据(全局变量、静态区或者堆内存中),也可以将子线程返回的数据保存到主线程的栈区内存中。条件等待是线程间同步的一种手段,如果只有一个线程,条件不满足,一直等下去都不会满足,所以必须 要有一个线程通过某些操作,改变共享变量,使原先不满足的条件变得满足,并且友好的通知等待在条件 变量上的线程。与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都是以“pthread.h”打头的;
2023-10-31 16:16:05
61
原创 负载均衡在线OJ
客户端向服务器发起请求(请求题目列表、请求特定题目的表写...)和提交编写代码,后端模块oj_server 首先获取用户请求,然后把请求交给后面对应的编译模块运行或者提供题目页面模块,把请求结果返回给客户端。首先,设计一个问题类,其属性主要包括:题目编号、题目标题、难度、题目时间要求、题目空间要求、题目描述、题目预设给用户在线编辑器的代码、题目的测试用例,需要和header拼接,形成完整代码。(2)负载均衡模块:加载所有主机信息、负载均衡轮询选择主机(选择负载最小的主机)、显示在线主机、显示当前主机情况。
2023-08-25 18:23:08
120
原创 Ubuntu18.04安装gcc编译器
一、C++环境设置执行下面的指令安装编译C语言和C++的环境sudo apt-get install gcc g++sudo apt-get install lsb-core lib32stdc++6安装完成后,可以使用下面的指令来查看安装的gcc和g++的版本g++ -vgcc-v即安装成功。在输入安装指令后,出现以下报错:解决方案:sudo vi /etc/resolv.conf1输入:# Dynamic resolv.conf(5) fi..
2022-03-21 14:46:26
1420
原创 const和引用知识总结
目录1、const总结2、引用总结1、Const用法:const修饰变量const修饰变量,可以使变量具有常属性,也就是该变量在以后的使用中其值不能进行改变。Eg: Const a=10; a=20;//错误写法2.const和指针用const修饰指针有以下几种情况 int const* p;//指针p本身可以修改,但是p指向的内容不可以修改 const int* p;//指...
2022-03-19 16:56:48
317
原创 QT:程序异常结束。
qt在没有任何语法错误的时候出现“程序异常结束。”由于程序中一些变量没有初始化照成的。解决方法:对程序中为初始化的变量及函数进行初始化。
2022-03-18 18:38:09
4360
2
原创 QT基础知识学习(一)
信号与槽的学习connect(&b1,&QPushButton::pressed,this,&MainWidget::close);connect中的参数都是指针的形式&b1:信号发出者&QPushButton::pressed 处理的信号 按照&发送者的类名::信号名字this:信号接收者&MainWidget 槽函数,信号处理函数 按照&接受者类名::槽函数名字槽函数的参数和返回...
2021-12-11 21:52:32
457
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人