王爽汇编语言学习
directx3d_beginner
这个作者很懒,什么都没留下…
展开
-
第二章实验1
周末没事正好练习下。前边-r原以为是只查看cpu寄存器内容,原来还有修改的意思。只用r即查询,用r 寄存器,则是修改该寄存器不只是可以修改ax,可以修改其他寄存器d 段地址:偏移地址 查看内存内容最左边是每行的起始地址。中间是从指定内存单元开始的128个内存单元的内容,比如,上图的073F:0–073f:7F指定的内容,用十六进制格式输出,每行从16的整数倍的地址开始,最多输出16个单元的内容。右边是每个内存单元中的ascii码字符。比如要查看这个>,拿不准是073f:1还是073原创 2022-03-26 17:25:36 · 217 阅读 · 0 评论 -
2.9-2.12段寄存器和cs:ip
段寄存器有四类:cs,ds,ss,es.其中,cs是代码寄存器,它指向的代码段是一组地址连续,起始地址为16的倍数的内存单元。这个代码段可以存储长度为N(N<=64KB)的一组代码。而与之相关联的是IP(指令指针寄存器),步骤如下:(1)cs:ip在地址加法中获得内存地址(csX16+ip),然后将通过输入输出控制电路和20位地址总线获得内存地址,将指令通过数据总线和输入输出控制电路放到指令缓冲区,(2)ip=ip+指令长度,指向下一条指令(3)执行指令缓冲器中的指令,再返回步骤(1)如原创 2022-03-25 22:06:33 · 1318 阅读 · 0 评论 -
2.4-2.8段地址x16+偏移地址=物理地址
王爽写的很清楚。如果要形成20位地址,但是是16位的寄存器,则需要组合起来,段地址x16+偏移地址=物理地址需要偏移的位数是20-16=4位,2进制偏移4位即相当于16进制偏移1位。比如:123C8=123016+c8=123c16+8,可见,对于同一块内存,并没有唯一表示方法。只要符合段地址*16+偏移地址=物理地址即可。这是个数学题。由于段地址和偏移地址都是16位,所以范围都是0000-ffff,检测点2.2(1)给定段地址0001,仅通过变化偏移地址寻址,cpu寻址范围。段地址16=原创 2021-08-07 12:34:33 · 2312 阅读 · 0 评论 -
2.3几条汇编指令(2)
继续看表2.3练习,我发现汇编还是挺有意思的。像黑客一般打下如下指令一直执行,问ax=?截图也就是最后一步00c5+0093=?原以为会进位,没想到是ah算ah的,al算al的,溢出部分放弃,好吧如果最后一步是add ax,93则会进位。然后一直-t下去,果然进位了看来,这些计算是按照寄存器位数算的。如果是16位寄存器,就按16位算;如果是8位寄存器计算,则按8位计算,计算时,只要位数对就行,不管ah和bl计算还是al和bh计算,都是一样的,都是8位寄存器。管它高位低位。高位低位也是人为原创 2021-08-06 00:38:15 · 121 阅读 · 0 评论 -
2.3几条汇编指令(1)
感谢@飞翔的哈士奇学习链接在https://blog.csdn.net/weixin_44307065/article/details/104985457用dosbox和debug配置环境1,先安装dosbox,2,设置一个文件夹为c盘3,将debug.exe放到该文件夹4,mount c盘和此文件夹5,转到c盘,敲debug即可。如下图文件夹内容用alt+ L进入dos全屏模式先用-r查看各个寄存器用-a命令写汇编,如果只按-a,则默认到cs:IP汇编指令是从cs:ip原创 2021-08-05 01:48:54 · 176 阅读 · 0 评论 -
1.1机器语言
机器指令是一列二进制数字,通过变为高低电平,驱动计算机的电子器件进行运算。执行机器指令的是cpu(中央处理单元),它和受cpu直接或间接控制的芯片、器件、设备组成计算机系统,比如PC机。而CPU是一种微处理器,各种微处理器硬件设计和内部结构不同,则需要的电平脉冲也不同。因此每种微处理器都需要有不同的机器指令集,即机器语言。很明显,二进制最大的缺点是易错不易查。...原创 2021-07-13 20:40:07 · 70 阅读 · 0 评论 -
序
在看《自建操作系统》时,用到了汇编,遗憾的是,从没有系统地学过,所以正好趁着裁员潮,不考虑跳槽,正好当做乐趣补一补。看了下,写得真不错。王爽总是在我疑惑的地方出问题,神人也。...原创 2019-01-05 16:03:10 · 161 阅读 · 0 评论 -
第二章练习
下载了dosbox后,跟着书慢慢看,并且练习。-r查询寄存器-r ip 查询修改指示器数值-d 查内存数据-e 改内存数据-u 查询内存代表的汇编指令-a 用汇编语言写指令-t执行指令(前提是先将cs::ip赋值正确)有几个练习很有意思。一个是查看版号并修改,实际上是在cdrom内存空间,无法修改的。另一个是修改显存数据。出现了不同的图标。(其实我怕给...原创 2019-01-05 16:09:00 · 266 阅读 · 0 评论