![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
汇编语言
文章平均质量分 68
hvk_l
精致的沉默,凌驾于一切之上。
展开
-
数据处理的两个基本问题
描述性符号reg & sregreg (寄存器)的集合包括∶ax、bx、cx、dx、ah、al、bh、bl、ch、cl、dh、dl、sp、bp、si、di;sreg (段寄存器)的集合包括∶ds、ss、cs、es。原创 2021-10-11 21:47:39 · 158 阅读 · 0 评论 -
更灵活的定位内存地址的方法
1.1 and 和 or 指令(1)and指令:逻辑与指令,按位进行与运算 (出现0则为0)(2)or指令:逻辑或运算,按位进行或运算 (出现1则为1)1.2原创 2021-10-10 23:13:38 · 298 阅读 · 0 评论 -
实验5 编写,调试具有多个段的程序
1.assume cs:code a segment db 1,2,3,4,5,6,7,8a ends b segment db 1,2,3,4,5,6,7,8b ends c segment db 0,0,0,0,0,0,0,0c ends code segmentstart: mov ax,a mov ds,ax mov ax,c mov es,ax mov cx,8 mov bx,0原创 2021-10-10 19:30:35 · 148 阅读 · 0 评论 -
包含多个段的程序
内存空间获取:加载程序的时候为程序分配空间定义段:定义不同的段来存放程序1.1 在代码段中使用数据我们不能自己随便决定哪段空间是可以使用的,应该让系统来为我们分配。可以在程序中定义我们希望处理的数据,这些数据就会被编译、连接程序作为程序的一部分写到可执行文件中。当可执行文件中的程序被加载入内存时,这些数据也同时被加载入内存中。同时我们要处理的数据就获得了存储空间。(dw作用:定义数据 / 开辟内存空间)dw:定义字型数据(用dw定义的数据处于代码段的最开始,得到偏移地址的初始值)程序运行时C原创 2021-10-09 19:06:00 · 141 阅读 · 0 评论 -
实验4 [bx]和loop的使用
编程,向内存 0;200~0;23F 依次传送数据 0~63(3FH),程序中只能使用9条指令,9条指令中包括"mov ax,4c00h"和"int 21h"。assume cs:codecode segment mov ax,0020h mov ds,ax mov bx,0 mov cx,64 s:mov [bx],bx inc bx loop s mov ax,4c00h int 21hcode endsend下面的.原创 2021-10-08 16:36:57 · 126 阅读 · 0 评论 -
[BX]和loop指令
要完整地描述一个内存单元,需要两种信息:(1)内存单元的地址 (2)内存单元的长度(类型)用[0]表示一个内存单元时,0表示单元的偏移地址,段地址默认在ds中,单元的长度(类型)可以由具体指令中的其他操作对象(比如说寄存器)指出。[bx]同样也表示一个内存单元,它的偏移地址在bx中,...原创 2021-09-12 16:35:36 · 311 阅读 · 0 评论 -
汇编语言程序
1.1 程序从写出到执行过程1> 编写汇编源程序使用文本编辑器,用汇编语言编写汇编源程序。产生了一个存储源程序的文本文件。2> 对源程序进行编译连接使用汇编语言编译程序对源程序文件中的源程序进行编译,产生目标文件;再用连接程序对目标文件进行连接,生成可在操作系统中直接运行的可执行文件。可执行文件包含两部分内容:(1)程序(从源程序中的汇编指令翻译过来的机器码)和数据(源程序中定义的数据)(2)相关的描述信息(程序有多大、要占用多少空间内存等)3> 执行可执行文件中的程原创 2021-09-11 21:59:27 · 4915 阅读 · 0 评论 -
实验2 用机器语言和汇编指令编程
(1)关于D 命令在D命令后面直接给出段地址,是Debug提供的一种直观的操作方式。D命令是由Debug执行的,Debug在执行“d 1000:0”这样的命令时,也会先将段地址1000H送入段寄存器中。Debug在其处理D命令的程序段中,必须有将段地址送入段寄存器的代码。D命令也提供了一种CPU机理的格式:“d 段寄存器:偏移地址”,以段寄存器中的数据为段地址SA,列出从SA:偏移地址开始的内存区间中的数据。例:(2)在E、A、U命令中使用段寄存器(3)下一条的执行Debug的T指令在执原创 2021-09-09 07:00:07 · 353 阅读 · 0 评论 -
汇编检测点部分习题3.2
(1)解答:(push [x] 则push ds:x 的内容入栈到SS:SP+2)push为入栈。故而,将数据段偏移地址中的数据以入栈的方式进入SS:SP(2000:10)这个指向栈顶的数据即可!三个空:mov ax,2000mov ss,axmov sp,10(2)解:与第一个题相反!此题为pop抛出操作。而且赋值顺序也会与上面一个不同!那么SS:SP就会指向一个栈的最高处!同理,mov ax,1000mov ss,axmov sp,0...原创 2021-09-07 09:21:37 · 74 阅读 · 0 评论 -
汇编易错知识点
push 和 pop 指令同 mov 指令不同,CPU 执行 mov 指令只需一步操作,就是传送,而执行 push、pop 指令却需要两步操作。执行 push 时,CPU 的两步操作是∶先改变 SP,后向 SS∶SP 处传送。执行 pop 时,CPU 的两步操作是∶ 先读取 SS∶SP 处的数据,后改变 SP。push、pop等栈操作指令,修改的只是SP。则栈顶变化范围为0FFFFH。(即SP的范围为0FFFF)。任何时刻,SS:SP指向栈顶元素。用栈来暂存以后需要恢复的寄存器的内容时,寄存器出栈的顺原创 2021-09-06 09:56:45 · 297 阅读 · 0 评论 -
(2)寄存器(内存访问)
1.1 内存中字的存储注:如果对于计算机系统而言,字大小也就是所谓的字长是表征计算机系统处理问题的能力,通常等于cpu总线或者寄存器的宽度,即现代计算的32位或者64位;在windows下编程,而且使用的微软的msvc编译环境,微软定义的WORD本质为unsigned short类型,只是一个别名;如果在汇编语言里面,一个字大小确实等于2个字节大小,DW则为数据定义伪指令,定义为一个字大小。————————————————BYTE(字节) 1字节WORD(字) 2字节DWORD(双字) 4字节原创 2021-09-01 09:07:34 · 1003 阅读 · 0 评论 -
汇编实验(1)习题(自做反思)
1、使用下面3条指令写入2000:0开始的内存单元中,利用这3条指令计算2的8次方。mov ax,1add ax,axjmp 2000:0003第一二步执行需 2个t,执行第三步的t的时候实际上只是改变cs:ip的指向并没执行cs:ip指向内容的机器指令,后面的7个jmp 每个需要执行2个t才能完整执行add方法(后面七个都是jmp转移+add ax, ax)!所以共需要执行t 16次才能计算出2的8次方。2、PC 机主板上的 ROM 中写有一个生产日期,在内存 FFF00H~FFFFFH原创 2021-09-01 00:27:38 · 482 阅读 · 0 评论 -
实验1 查看CPU和内存,用机器指令和汇编指令编译
Debug使用1.Debug 是 DOS、Windows 都提供的实模式(8086 方式)程序的调试工具。使用它,可以查看 CPU 各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。2.Debug功能:● 用 Debug 的 R命令查看、改变 CPU 寄存器的内容;● 用 Debug 的 D 命令查看内存中的内容;● 用 Debug 的 E 命令改写内存中的内容; ● 用 Debug 的 U命令将内存中的机器指令翻译成汇编指令;● 用 Debug 的 T命令执行一条机器指令; ● 用原创 2021-08-31 12:53:39 · 348 阅读 · 0 评论 -
(1)寄存器
一个典型的CPU由运算器、控制器、寄存器等器件构成,这些器件靠内部总线相连。内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其他器件的联系。在CPU中:运算器进行信息处理寄存器进行信息存储控制器控制各种器件进行工作内部总线连接各种器件,在他们之间进行数据的传送注:不同的CPU,寄存器的个数、结构是不同的、8086CPU有14个寄存器,分别是:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW8086CPU的所有寄存器都是16位的,可以原创 2021-08-30 22:24:06 · 2382 阅读 · 0 评论 -
汇编语言基础知识(2)
内存空间地址:一个CPU的地址总线宽度为10,那么可以寻址024个内存单元,这1024个可寻到的内存单元就构成了这个CPU的内存空间地址。原创 2021-08-28 07:13:36 · 147 阅读 · 0 评论 -
汇编语言基础知识(1)
充分获得底层编程的体验,深刻理解机器运行程序的机理深入理解机器工作的基本原理培养底层编程意识和思想机器语言是机器指令的集合。机器指令是机器可执行的命令。cpu 等微处理器 统称计算机系统微处理器不同,使用电平脉冲不同,机器语言不同。汇编指令,指令表达方法汇编指令是机器指令便于记忆的书写格式。寄存器是cpu中可以存储数据的零件,一个cpu中有多个寄存器。伪指令,由编译器执行,计算机不执行其他符号,由编译器识别cpu工作需要提供指令和数据,指令和数据存储在内存(存储器)上磁盘原创 2021-08-27 15:34:47 · 121 阅读 · 0 评论