BX
  • 2024-07-03go当中的线程存储与使用
    1、settls从引导代码中可以看到,在执行settls前将m.tls放入了DI。go/src/runtime/asm_amd64.s:159TEXTruntime·rt0_go(SB),NOSPLIT|NOFRAME|TOPFRAME,$0....LEAQruntime·m0+m_tls(SB),DICALLruntime·settls(SB)....tls定义是无符号整形指针ty
  • 2024-07-02go汇编调试方法
    plan9基本知识:首先我们学习如何用vscode+delve来调试go的plan9汇编代码.首先我们用vscode配置好go的运行环境.能正确打印helloworld代码.编写代码://main.gopackagemainfuncmain(){ varaaa=Sum(2,4) print(aaa)}funcSum(x,yint)int//add.sTEXT·Sum(
  • 2024-06-19汇编语言程序设计 - 统计字符串中非数字字符的数
    80x86汇编习题题目描述:从键盘输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示出计数结果。思路:有两种思路,一种是先输出,后计数;另一种是边输入,边计数。本文是用前者。1,逐个字符输入到BUFF,指针后移,判断是否为'$',是则结束输入2,逐个判断数组内容是否为数字,是则
  • 2024-06-09常见汇编指令
    下面是一些包含汇编指令MOV、PUSH、POP、LEA、LDS、ADD、ADC、INC、SUB、SBB、DEC、CMP、MUL、DIV、AND、OR、XOR、NOT、TEST、SHL、SAL、SHR、SAR、ROL、ROR、RCL、RCR、LODS、MOVS的例题。这些例题展示了每条指令的用法及其作用。1.MOV指令MOVAX,BX;将寄存器
  • 2024-06-058086 汇编笔记(十):标志寄存器
    前言一、ZF标志ZeroFlag,零标记位。用于记录相关指令执行后,其结果是否为0。如果结果为0,则ZF=1,如果结果非0,则ZF=0 movax,1subax,1;ZF=1movax,2subax,1;ZF=0二、PF标志ParityFlag,奇偶标记位。它用于记录相关指令执行后,其结果的所有bit位中1的个
  • 2024-06-018086 汇编笔记(五):包含多个段的程序
    一、在代码段中使用数据“dw”的含义是定义字型数据dw0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hcodesegmentdw0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hmovbx,0movax,0movcx,8s:addaxcs:[bx]addbx,2loops
  • 2024-05-31论二次函数一般式系数正负性的判定
    二次函数一般式,即\(y=ax^2+bx+c\;(a,b,c\text{areconstants,}a\ne0)\)。给出一张未给出单位长度的平面直角坐标系及其上任意二次函数图象,可快速求出\(a,b,c\)的正负性(\(>0,=0,<0\))。1、\(c\)联立,求图象与\(y\)轴交点\[\begin{cases} x=0\\y=ax^2+bx+c\end{cases}\]
  • 2024-05-21为什么 mov sp, 32,debug程序,执行sp=32的位置,后面的代码就全乱了(在小甲鱼零基础汇编第6章,包含多段程序,的视频代码)
    assumecs:code,ds:data,ss:stackdatasegmentdw0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h;用来作存放数据dataendsstacksegmentdw0,0,0,0,0,0,0,0;用来作栈的空间stackendscodesegmentstart:;设置数
  • 2024-05-16loj#546. 「LibreOJ β Round #7」网格图
    裸的01BFS,时间复杂度\(\mathcalO(nm)\)。相邻的无障碍行可以缩成一行,列同理,所以全图的规模可以缩成\((k+1)\times(k+1)\),再01BFS,时间复杂度\(\mathcalO(k^2)\)。进一步地,所有\(1\timest\)或\(t\times1\)大小的无障碍连通块均可缩成一个点,两个连通块相交,则
  • 2024-05-09关于expand down
    今天研究执行流,代码运行到自定义的栈时bochs总是重启。把栈的地址定义到了第三个数据段0x18,在0x7e00处,分出64k(0x10000)空间。段描述符是这样的: Base4GD/BLA +L2.5PDLPS+TEWA  Base3 Base2 Base1 L2 L1  0000  0000100 1  
  • 2024-04-288086 汇编学习 Part 4
    寻址方式形式名称特点意义示例[idata]直接寻址用一个常量/立即数来表示地址用于直接定位一个内存单元MOVAX,[200][BX]寄存器间接寻址用一个变量来表示内存地址用于间接定位一个内存单元MOVAX,[BX][BX+idata]寄存器相对寻址用一个变量和常量
  • 2024-04-07数学基础
    数学:一:整除概念:如果\(A\)能整除\(B\)则记之为\(A|B\)即存在一个数\(k\inZ\)使\(Ak=B\)。即\(B\)是\(A\)的倍数。性质:1.如果\(a|b,b|c\)那么\(a|c\)表明整除具有传递性。2.如果\(a|b,a|c\)那么对于任意整数对\((x,y)\)满足\(x\inZ,y\inZ\)
  • 2024-04-07GO 语言编写的程序运行过程详解
    1.1go源代码packagemainfuncmain(){goadd(1,2)}funcadd(a,bint)(int,int,int){returna+b,a,b}1234567先来看看上面这段程序的反汇编代码:1.2add函数反汇编代码0x401050  48c744241800000000  MOVQ$0x0,0x18(SP)0x401059  48c744
  • 2024-04-05P1002 [NOIP2002 普及组] 过河卒
    题目链接:从起点走到终点,最后一步一定是向右或向下走过来的,因此就可以列出状态转移方程。值得注意的是,对于横着和竖着的两条边界不可直接想当然地认为路径数一定等于\(1\),因为在中途可能会有控制点的存在,因此还是要老老实实地列出状态转移方程。由于边界时只会从一个方向递推过来
  • 2024-03-29P1170 兔八哥与猎人
    题目描述兔八哥躲藏在树林旁边的果园里。果园有 M×N 棵树,组成一个 M 行 N 列的矩阵,水平或垂直相邻的两棵树的距离为 1。兔八哥在一棵果树下。猎人背着猎枪走进了果园,他爬上一棵果树,准备杀死兔八哥。如果猎人与兔八哥位置的连线上没有其它的果树,猎人就可以看到兔八哥
  • 2024-03-25汇编语言(第4版)王爽 课程设计2 详细实现(三、界面优化篇)
    目录0.前文概述1.子界面文字说明1.1.时钟显示1.2.时钟设置2.光标处理2.1.字符串输入光标2.2.新的问题3.完整代码4.总结0.前文概述前面两篇文章中我们编写了一个可以自行启动计算机,不需要在现有操作系统环境中运行的程序。第一部分我们实现了程序在虚
  • 2024-03-24汇编语言——实现用多种寻址方式在屏幕上显示“hello world !“
    ;数据段定义datasegment stringdb"helloworld!",0dh,0ah,'$' ;想要显示的字符个数,不显示$ countdw$-string-1dataends;堆栈段定义stacksegmentstack toplabelword dw30hdup(?)stackends;代码段定义codesegment ;assum伪指令,不执行 ass
  • 2024-03-20汇编语言中的MVC
    一MVC指令1.移动字符串指令MVC移动字符串指令MVC的格式为:MVCD1(L,B1),D2(B2)(移动字符串)功能:(D1+(B1))←(D2+(B2))L个字符指令的执行用开始于D2(B2)的L字节替换开始于D1(B1)的L字节的内容。L个字节的内容每次改变一个,从左边开始。如果域不重叠的话,这一事实是不重要的,但
  • 2024-03-19[BX]和loop指令
    文章目录[BX]和loop指令1[bx]2Loop指令3在Debug中跟踪用loop指令实现的循环程序4Debug和汇编编译器Masm对指令的不同处理5loop和[bx]的联合应用6段前缀7一段安全的空间8段前缀的使用[BX]和loop指令1[bx]我们用[bx]表示一个内存单元,它的段地址默认在ds中,它
  • 2024-03-19《汇编语言》第3版 (王爽)实验7解析
    实验7解析实验7寻址方式在结构化数据访问中的应用解析:方法一:将每个数据项逐个进行传输,共有4个数据项(分别是年份、收入、雇员数、人均收入)人均收入需要计算后得到,每个数据项又有21个元素,所以需要传输21次assumecs:codedatasegment db'1975','1976','1977','1
  • 2024-03-083. 寄存器(内存) | 问题 3.7 - 3.10
    问题3.7编程,将10000H  ~  1000FH做为连本带利,初始状态是空的,将AX,BX,DS中的数据入栈。#初始化SS,SPss=1000H[sp]=[0010],则[ssss:sp]=[1000H:0010H]movax,1000movss,ax#sp是指针,不是段寄存器,可以直接传数据,不用ax中转movsp,0010pushaxpushbxpu
  • 2024-03-06linux-0.11-操作系统引导
    bootsect.s逐字分析_start部分设置数据段(DS)和额外段(ES)寄存器:mov ax,#BOOTSEGmov ds,axmov ax,#INITSEGmov es,ax这部分代码将BOOTSEG(0x07c0)值加载到DS寄存器,设置数据段指向引导扇区的原始地址。然后,它将INITSEG(0x9000)值加载到ES寄存器,设置额外段指向内存中的一个
  • 2024-02-27基础数论学习笔记
    1.辗转相减利用辗转相减法求最大公约数,即\(gcd(a,b)\)。假设\(a>b\),则gcd(a,b)=gcd(a−b,b),不断的利用大的数减去小的数,就能得到最大公约数。1.证:若\(n,m(n>m)\)互质,则$(n-m),m$互质若不互质,则设\(n-m=k*a,m=k*b\)\(\thereforen-k*b=k*a
  • 2024-02-2320240222比赛总结
    T1打赌https://gxyzoj.com/d/hzoj/p/3642一道大模拟,容易发现,连续的4个数的和为14,这些直接求和,其余暴力处理即可代码:#include<cstdio>#definelllonglongusingnamespacestd;intr,c,x[10]={1,6,4,3,2,5};llans;voidLeft(){ inta=x[0],b=x[1],c=x[2],d=x[3]; x[
  • 2024-02-14ABC 340
    忘记打了,VP了一把,前五题都是板子。F题意:坐标系上给定一个整点\((x,y)\),求另一个整点\((a,b)\),满足\((0,0),(x,y),(a,b)\)组成的三角形面积为\(1\)(或说明无解)。题解:由这三个点组成的三角形面积为\(\dfrac{|ay-bx|}{2}\),所以\(|ay-bx|=2\)。令\(g=gcd(x,y)\),若\(g>3\)