![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
汇编
文章平均质量分 62
我所理解的计算机编程
KNOWING IS NOT ENOUGH,WE MUST APPLY.
展开
-
王爽汇编语言实验10
1、显示字符串写完后结果出错,检查了几遍也没发现逻辑错误,用debug逐步调试后才发现有些寄存器中的值没有初始化就拿来直接用了,影响了后面的计算,造成结果的错误。assume cs:code,ds:data,ss:stacksgdata segment db 'welcome to masm',0data endsstacksg segmentdb 16 dup(0)stacksg endscode segmentstart : mov ax,stacksg mov原创 2022-03-08 23:27:32 · 277 阅读 · 0 评论 -
汇编语言预备知识--汇编语言基础
汇编语言是直接在硬件之上工作的编程语言,因此在编程前需要首先了解硬件系统的结构。1. 机器语言机器语言是机器指令的合集,机器指令是一串二进制数字,计算机将其转变为一系列高低电平,驱动计算机进行运算。负责运算的是CPU,每一种CPU由于硬件设计和内部结构的不同,需要用不同的电平脉冲来控制其工作。所以每一种CPU都有自己的机器指令集,也就是机器语言。机器语言难以记忆与使用,于是有了汇编语言。2. 汇编语言汇编语言的主体是汇编指令。汇编指令是机器指令便于记忆的书写格式。如:操作:将寄存器BX的内容原创 2022-03-05 18:47:35 · 238 阅读 · 0 评论 -
《汇编语言》王爽 读书笔记之三 第一个程序
assume cs:codesgcodesg segmentmov ax,0123hmov bx,0456hadd ax,bxadd ax,ax mov ax,4c00h int 21hcodesg endsend现对程序说明1.伪指令伪指令没有对应的机器指令,最终不被CPU执行。它由编译器执行–编译器根据伪指令来进行相关的编译工作。(1)XXX sgmentXXX endssgment 与ends是一对成对使用的伪指令,其功能是定义一个段。XXX为段名,用来标识一个段。(原创 2022-03-03 10:29:55 · 81 阅读 · 0 评论 -
《汇编语言》王爽 读书笔记之一硬件基础
汇编语言是直接在硬件之上工作的编程语言,因此在编程前需要首先了解硬件系统的结构。1. 机器语言机器语言是机器指令的合集,机器指令是一串二进制数字,计算机将其转变为一系列高低电平,驱动计算机进行运算。负责运算的是CPU,每一种CPU由于硬件设计和内部结构的不同,需要用不同的电平脉冲来控制其工作。所以每一种CPU都有自己的机器指令集,也就是机器语言。机器语言难以记忆与使用,于是有了汇编语言。2. 汇编语言汇编语言的主体是汇编指令。汇编指令是机器指令便于记忆的书写格式。如:操作:将寄存器BX的内容原创 2022-03-02 15:39:57 · 357 阅读 · 0 评论 -
《汇编语言》王爽 读书笔记之二内存访问
1.物理地址CPU要访存内存单元时,要给出内存单元的地址。所有的内存单元组成的存储空间是个一维的线性空间,每一个内存单元在这个空间中都有唯一的地址,我们将这个唯一的地址称为物理地址。CPU通过地址总线送入存储器的,必须是物理地址。因此CPU在向地址总线送地址之前,必须要在内部先形成这个物理地址。不同的CPU可以有不同的形成物理地址的方式。8086CPU为16位结构,也就是:运算器一次最多可处理16位数据寄存器最大宽度为16位寄存器和运算器之间的数据通路为16位而8086CPU有20位地址总线,原创 2022-03-03 09:24:27 · 141 阅读 · 0 评论 -
汇编语言指令
ptrptr的作用就是临时指定类型。8086CPU的指令,可以处理两种尺寸的数据,byte和word。所以在机器指令中要指明,指令进行的是字操作还是字节操作。对于这个问题,汇编语言中用以下方法处理。1. 通过寄存器名指明要处理的数据的尺寸。例如:下面的指令中,寄存器指明了指令进行的是字操作是字操作:mov ax,3mov bx,ds:[4]mov ds,axmov ds:[1],axinc axadd ax,1000下面的指令中,寄存器指明了指令进行的是字节操作:mov al,1m原创 2022-03-05 18:42:07 · 1720 阅读 · 0 评论 -
王爽汇编语言实验6(2)
编程,将如下datasg段中的每个单词的前四个字母改为大写字母datasg segmentdb '1. display 'db '2. brows 'db '3. replace 'db '4. modify 'datasg ends分析1:内存中如何存储数据?datasg定义了四个字符串,每个16字节,因其在内存中连续存放,我们可将其视为一个4行16列的二维数组,要修改每个单词的前四个字母,只需要修改每个数组的3~6列即可(数组从0开始计...原创 2022-02-28 11:22:20 · 422 阅读 · 0 评论