摘要:
在用Git工作时,可能会遇到这样一种情况:想查看历史版本中的某个文件,或整体切换到某个历史版本,然后再切换回你当前的工作状态。甚至,需要在这两个版本间多次切换。 我之前使用的方式是: # commit-id指的是版本hash值 git checkout <commit-id> # 也可以通过以下命令 阅读全文
摘要:
博主学习的第一个编程语言是C语言(跟谭教授学的),其实,第一接触是basic,因为博主第一个接触的系统是DOS。Dos中自带一个qbasic编译器,所以就看资料写了一个hello,word!。但很快放弃了,因为qbasic不能编译成可执行程序,需要在编程环境中才能执行,感觉不够高大上。后打听到c语言 阅读全文
摘要:
Offset伪指令我一直都认为只是获取标识符在段中的偏移地址,但经研究,发现了部分违反直觉的细微区别: 1、在完整端声明(Full segment definition)的模式下 如果offset mygroup:myvar或offset mysegment:myvar,可通过端前缀来获取myvar 阅读全文
摘要:
当程序需要引用尚未定义的变量或标号时,编译器会如何处理呢,这就涉及到向前引用(Forward Reference)的概念。 一、Forward Reference的概念 程序引用到之前尚未定义的变量(Variable)、标号(Label)、段(Segment)或其他标识符(Symbol),编译器会如 阅读全文
摘要:
Masm5以后推出的simplified segment模式及.model标准模型中,都将段组合成一个group,group的作用及优点是什么呢? 一、Group的作用 将组(group)后的所有段加入一个组,位于这些段内的的label(标号)或variables(变量)的偏移地址都参照Group的 阅读全文
摘要:
Bochs是通过配置文件(.bxrc文件)的方式来设置模拟计算机的硬件参数,其中MEMORY部分,分别需要设置Guest和Host的大小来决定虚拟计算机的内存大小,有什么区别呢?通过下面的Bochs构架图可以弄清楚: 要点说明: 1、Bochs在现实环境中属于应用程序,Host表示应用程序用来模拟内 阅读全文
摘要:
在MASM 5(Microsoft Micro Assembler)的汇编体系中,子程序(Procedures)的定义和调用是非常重要的,就像C、pascal等的函数和方法一样;且对深入理解高级语言里函数的底层原理极其重要,如函数的参数传递、栈、变长参数等。但在网络上许多教程及代码都极其不规范且语焉 阅读全文
摘要:
Photoshop虽然不是什么高手,但平时工作中难免会用到,处理部分需求还是可以胜任的。接触PS这么多年,对PS中图层的混合模式(Blend Mode)一直就处于懵懂状态,即使是看了教材及视频后,有了一点感性认识,但在实际操作中仍旧无法运用起来。直至某一天,我在B站看到韩世麟的《把 PS 图层混合模 阅读全文
摘要:
学习MASM汇编时有时会被各种语法弄混,其实很多指令的规则是很简单的,但编译器为了方便添加了伪指令来帮助编译器更准确的生成机器代码。为了深入理解伪指令背后的逻辑,特将8086的编码规则记录如下,以便随时参阅。 一、编码规范: 二、编码约定: 阅读全文
摘要:
MASM中如果将程序直接跳转到指定地址执行,如1234:5678,如果直接这样jmp 1234:5678或jmp [1234]:[5678]都无法通过编译,在debug中jmp 1234:5678倒是可以。那么如何能到达这个目的呢? 一、普通方法: 1、通过将地址保存到变量,然后far jmp: j 阅读全文