汇编语言
文章平均质量分 51
手写的从前66
这个作者很懒,什么都没留下…
展开
-
在Win10下使用DOSBox+MASM32工具包搭建汇编环境
https://blog.csdn.net/WuchangI/article/details/79658730原创 2019-12-03 14:53:02 · 230 阅读 · 0 评论 -
BIOS和DOS所提供的中断例程
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ZCMUCZX/article/details/80368664 通常在系统板的ROM中存放着一套程序,称为BIOS(基本输入输出系统),BIOS中主要是包含了以下几部...转载 2018-11-14 20:16:33 · 755 阅读 · 0 评论 -
符号位扩展和数据截断
数据类型转换的时候,经常会进行符号位的扩展和截断:假设将一个整数从单字节的数据类型(char)转换成双字节的数据类型(short):如果该数是正数,即符号位是0,比如0x05, 多出来的8位全部填符号位0, 转换后, 变成 0x0005, 十进制数值仍为5,没有改变;如果该数是负数,即符号位是1,比如 0x81, 多出来的8位全部填符号位1,转换后,变成0xff81, 根据下面2的补...原创 2018-11-23 16:45:13 · 874 阅读 · 0 评论 -
趣谈汇编语言——中的符号数
一、只有一个标准!在汇编语言层面,声明变量的时候,没有 signed 和 unsignde 之分,汇编器统统,将你输入的整数字面量当作有符号数处理成补码存入到计算机中,只有这一个标准!汇编器不会区分有符号还是无符号然后用两个标准来处理,它统统当作有符号的!并且统统汇编成补码!也就是说,db -20 汇编后...转载 2018-11-22 20:26:04 · 425 阅读 · 0 评论 -
趣谈汇编语言符号数
专题:汇编语言中有符号数还是无符号数?一、汇编语言在存储方面讲,有符号数和无符号数存储形式是一致的。l 数据在内存或CPU的寄存器中都是按照有符号数的二进制补码方式存储的。   &转载 2018-11-22 20:31:24 · 1235 阅读 · 4 评论 -
数据内存对齐
对于数据对齐,很多人都是知其一,而不知其二。比如他听说过内存对齐和其大概的作用,但是却不知道cache对齐以及对齐到底有什么作用,更不了解怎么能更好的对结构进行内存布局以提高性能,在本文,你会得到解答。以下讨论的概念性的东西应该都是适用于所有系统的,但是实际操作都是linux系统做的。讨论基于单线程处理,目的是为了简化讨论,简化测试,但并不影响对理论的验证。最后附上验证源码以及其解释。...转载 2018-11-24 11:33:40 · 737 阅读 · 0 评论 -
宏汇编语言和汇编语言有什么区别
List item宏是一种伪指令,在编译的时候由编译器翻译成相应的汇编指令然后生成.OBJ文件,宏不能对硬件进行控制,只对编译器有作用。其实理解了伪指令和机器指令的区别就是你这个问题的区别宏汇编属于汇编语言。宏汇编本人理解就是再给取个名,便于编写程序。例如某人叫二狗子,签名时候写二狗子不行(叫二狗子的太多了),就要取个大名,但得到公安局登记。宏汇编就相当于公安局。...原创 2018-11-18 08:50:21 · 1871 阅读 · 0 评论 -
汇编语言总结——中国地质大学
http://www.docin.com/p-595434596.html原创 2018-11-18 08:59:32 · 245 阅读 · 0 评论 -
汇编语言——jmp和存储器操作数寻址方式
汇编语言之寻址方式 与数据有关的寻址方式下面以数据传送指令MOV为例来说明。其汇编格式为:MOV 目标, 源1.立即寻址方式(immediate addressing)操作数直接包含在指令中,紧跟在操作码之后的寻址方式称为立即寻址方式,把该操作数称为立即数。MOV AL, 6 &n...转载 2018-11-24 16:46:07 · 9179 阅读 · 0 评论 -
句柄和特殊的指针
这是操作系统里的一个概念,句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,句柄有点象C语言中的文件句柄。 从上面的定义中的我们可以看到,句柄是一个标识符,是拿来标识对象或者项目的,它就象我们的姓名一样,每个人都会有一个,不同的人的姓名不一样,但是,也可能有一个名字和你一样的人。从数据类型上来看它只是一个16...转载 2018-11-26 20:18:02 · 95 阅读 · 0 评论 -
句柄和指针的区别
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/perfectguyipeng/article/details/71189822 句柄在windows编程中是一个很重要的概念,在许多地方都扮演着重要的角色。在window...转载 2018-12-01 11:22:19 · 1271 阅读 · 0 评论 -
汇编语言中可以定义变量吗?怎么定义?有局部变量和全局变量之分吗?作用域是什么?
汇编语言定义变量的格式为 【变量名】【变量类型】【数值列表】其中 变量类型有 DB DW DD等,分别表示变量占有的内存空间(依次为1,2,4个字节)如:A DB 1,2,3,4 就定义了名称为A的4个占1个字节的变量,分别是1,2,3,4(严格来说是0001,0010,0011,0100) 保存在系统分配的内存空间中如果是A ...转载 2018-12-07 15:47:25 · 3491 阅读 · 0 评论 -
汇编语言---关于自定义的段占用内存空间_end start
汇编语言---关于自定义的段占用内存空间在王爽汇编实验5(2)中有这样一个问题:对于如下定义的段:name segment ...name ends如果段中的数据占N个字节,则程序加载后,其实际占用空间当时在做这道题时候,只是通过debug加载多个类似程序,然后观察,得出实际占用空间为16;([N/16]+1)字节。即对于设定的段空间,如果在预设时候的数据不足16...转载 2018-12-07 15:49:15 · 1255 阅读 · 0 评论 -
汇编语言——标号与变量详解
当程序中要跳转到另一位置时,需要有一个标识来指示新的位置,这就是标号,通过在目标地址的前面放上一个标号,可以在指令中使用标号来代替直接使用地址。使用变量是任何编程语言都要遇到的工作。变量是计算机内存中已命名的存储位置,在大部分的语言中都有很多种类的变量,如整数型、浮点型和字符串等,不同的变量有不同的用途和尺寸,比如说虽然长整数和单精度浮点数都是32位长,但它们的用途不同。顾名...转载 2018-11-14 20:15:55 · 1340 阅读 · 0 评论 -
汇编语言——标号与变量详解
当程序中要跳转到另一位置时,需要有一个标识来指示新的位置,这就是标号,通过在目标地址的前面放上一个标号,可以在指令中使用标号来代替直接使用地址。使用变量是任何编程语言都要遇到的工作。变量是计算机内存中已命名的存储位置,在大部分的语言中都有很多种类的变量,如整数型、浮点型和字符串等,不同的变量有不同的用途和尺寸,比如说虽然长整数和单精度浮点数都是32位长,但它们的用途不同。顾名...转载 2018-11-14 11:23:24 · 11067 阅读 · 0 评论 -
汇编语言——源程序中的变量和标号
标号:1、尾部带冒号,后面跟可执行的指令;2、在程序中,可用jmp、条件转移指令跳转到标号所在的指令继续执行。变量:1、尾部不带冒号,后面可跟db、dw、dd等伪指令;2、可通过mov ax,seg XX、mov bx,offset XX、lea si, XX、mov ax,XX[bx+si]等指令获取变量的段地址(偏移)、有效地址 或 变量的值。(XX为定义的变量)...原创 2018-11-14 11:19:45 · 1308 阅读 · 0 评论 -
汇编语言——汇编指令长度的判断
汇编语言(王爽)中,讲CS:I[寄存器的地方有这样一则图示:其中IP=IP+所读指令的字节数。那么,所读指令的字节数应该怎么判断呢?汇编指令长度与寻址方式有关,规律或原则如下:一、没有操作数的指令,指令长度为1个字节二、操作数只涉及寄存器的的指令,指令长度为2个字节 如...转载 2018-11-04 07:57:56 · 6822 阅读 · 0 评论 -
win7 64位如何调出debug
1.下载一个dosbox和win7 32位debug.exe,安装dosbox,打开后页面如下2.将debug.exe放入磁盘根目录,这里以D盘为例。在dosbox中输入mount c d:\按回车,出现下图3.输入c:回车4.输入debug回车5.输入p回车6.输入a回车7.最后就可以自己敲代码了...原创 2018-11-04 09:47:56 · 307 阅读 · 0 评论 -
Debug命令详解
R命令的使用作用:观看和修改寄存器的值。在提示符“-”下输入以下命令:R。DEBUG将会显示出当前所有寄存器和标志位的状态。接下来再输入命令rax。在提示符“:”后输入100。该命令的作用是将寄存器ax的值设置为100(注意:DEBUG使用的是十六进制,这里的100相当于十进制的256。)最后再执行r命令,观看修改后的寄存器值。 H命令的使用H命令作用:计算两个十六进制数...转载 2018-11-04 16:07:27 · 638 阅读 · 0 评论 -
汇编语言——标号与地址
在汇编语言里,地址是一个很重要的东西,你要读写数据,首先你得找到你要的数据的地址,同样程序也是被放在内存里的,如果没有标号来说明,CPU怎么知道它放在内存的哪个位置。在程序执行的时候,你写的那些标号会被翻译成诸如3100:1000h这样的地址。这就是标号的作用。...原创 2018-11-07 14:43:39 · 5656 阅读 · 0 评论 -
汇编语言——伪指令和汇编指令详解
原创 2018-11-07 15:34:11 · 3048 阅读 · 5 评论 -
cpu怎么知道(判断)一条指令有多少个字节?
指令译码一般有几个过程(部件):指令预取、指令预分析(预解码)、解码。预取是从cache或者内存取一系列的字节(大小可以保证至少包含一条指令),并设置一个待分析的位置,预分析从此位置逐字节分析,如果是前缀就设置分析状态(因为前缀可能改变默认地址尺寸和操作数的大小,影响后续指令长度),直到不是前缀,就认为是操作码,x86的op code长度一般为1字节,某些2字节,查表就可以直接找出指令长度了。...原创 2018-11-05 15:52:06 · 7526 阅读 · 0 评论 -
汇编语言总结(全篇)
看到一篇讲解微机原理或者汇编语言蛮详细的,因此分享给大家!1、在计算机中数的表示方式因为计算机中只能存储二进制数,所以一般都是通过二进制直接进行存储,但是为了方便阅读和程序员的编码简单化,就出现了八进制、十进制、十六进制,一般在汇编的学习过程中以二、十、十六进制为主。四种数据的表示形式符号是:B(二进制)、O(八进制)...转载 2018-11-08 10:16:44 · 6987 阅读 · 0 评论 -
汇编语言——汇编的8种寻址方式,以及2个默认段寄存器
1.立即寻址方式 MOV AH, 80H(直接给寄存器赋值)2. 寄存器寻址方式(源或者目的有一个是寄存器)2.1) 源操作数是寄存器寻址方式如:ADD VARD, EAX ADD VARW, AX MOV VARB, BH等。其中:VARD、VARW和VARB是双字,字和字节类型的内存变量。2.2) 目的操作数是寄存器寻址方式如:ADD BH, 78h ADD AX, 12...转载 2018-11-11 17:20:16 · 5315 阅读 · 0 评论 -
C语言编译过程详解
前言C语言程序从源代码到二进制行程序都经历了那些过程?本文以Linux下C语言的编译过程为例,讲解C语言程序的编译过程。编写hello world C程序:// hello.c#include <stdio.h>int main(){ printf("hello world!\n");}编译过程只需:$ gcc hello.c # 编译$ ./a.out #...转载 2018-11-14 10:10:34 · 187 阅读 · 0 评论 -
汇编语言——nop
”NOP"指令即空指令运行该指令时单片机什么都不做,但是会占用一个指令的时间。当指令间需要有延时(给外部设备足够的响应时间;或是软件的延时等),可以插入“NOP”指令。nop指令执行时花去一个时钟周期,所以可用把它用在延时程序中作为循环体,用以估计一个延时时间;用于程序指令的对齐,比如字对齐--以便于反汇编时容易读懂。...原创 2018-11-14 10:38:50 · 17142 阅读 · 0 评论 -
字对齐、半字对齐、字节对齐的理解
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/L_Andy/article/details/63686870 一般情况下字为32位(4字节)、半字为16位(2字节)、字节为8位(1字节)。大多数计算机使用 字节(8位的数据块)作为...转载 2018-11-14 10:39:39 · 4191 阅读 · 0 评论 -
汇编语言——assume的作用
assume 的作用是关联段名与段寄存器。如果你在数据段中定义了变量名,比如:x db 0而你在代码中,需要直接使用这个变量名,比如:mov al, x那么,汇编程序在汇编时,就会报告错误。因为,mov指令中遇到 x 这个变量名时,汇编程序不知道它要用哪个段寄存器作为段地址。所以:若要用变量名直接访问,或使用语句标号(比如你例子中的标号 start)就必须要在...原创 2018-11-14 11:09:32 · 20655 阅读 · 8 评论 -
汇编语言——1-6章
汇编指令和机器指令一一对应,有编译器翻译识别,计算机无法直接识别一个存储单元等于1字节 1字节等于8位1KB=1024Byte(字节)1Byte=8bit(位)CPU中,指令和数据都是二进制形式存在磁盘的数据,CPU无法直接使用,只能读到内存中,才能被CPU使用CPU可以使用的数据,是在存储器中存储器被划分为很多存储单元,以0开始编号,一个单元存储一字节,即8位寄存器是一种比内存和...原创 2018-11-03 10:54:08 · 471 阅读 · 0 评论