汇编语言前五章总结

以下所有的总结基于我只学了前五章的前提下,可能会有错误

第一章:基础知识

  • 在内存中把指令和数据区别开来:cs:ip指向的内存中的”数据“就是cpu认为的指令。
  • 一个储存单元:2个16进制数字,8位,1个字节
  • cpu将系统中各类内存器看作一个逻辑内存器

第二章:寄存器

  • 8086cpu的所有寄存器都是16位的
  • 8086cpu中 1个字 = 2个字节
  • xx位cpu指的是:运算器一次处理的数据位数,寄存器位数,计算器与运算器之间通路的位数
  • 8086有20位地址总线,用两个寄存器(段地址,偏移地址)来表示内存地址,具体计算方法是(段地址*16+偏移地址)就是内存地址
  • 段地址的起始地址只能是16的倍数(段地址*16,偏移量为0)
  • cs:ip指向下一个要执行指令的地址
  • 修改cs:ip : jmp cs:ip
  • debug用法
    • r : 查看所有寄存器状态
    • r ax(cs,ip...):修改ax的值
    • d ds:bx ax:查看ds:bx到ds:ax的值
    • e ds:ax 修改ds:ax的值
    • u cs:ip :查看汇编指令(如果可以反汇编成汇编指令的话)
    • a ds:ax :写汇编指令

第三章:寄存器(内存访问)

  • 一个字的地址是这个字的低8位所在的内存地址
  • 访问内存数据 ds:[bx]
    • debug中可以[idata]访问,写汇编文本文源文件的时候不可以
    • 源文件:ds:[idata] 或者 [寄存器]
  • add,sub 不可以操作段寄存器
  • ss:sp指向栈顶

第四章:第一个程序

assume cs: code

code segment
	...

	mov ax,4c00h
	int 21h
code ends
end
  • loop s:(cx) = (cx)-1, 如果cx不为0,ip跳到s的位置,否则往下执行
  • 0:200-0:2ff是安全的空间

原文地址:https://www.cnblogs.com/rookiezjz/p/12688761.html

时间: 2024-10-10 17:17:20

汇编语言前五章总结的相关文章

现代软件工程构建之法 前五章阅读感想&困惑

第一章 第一节 新时代中国的IT产业市场规则不规范,书中提到社会上有个别软件公司的软件一定要卸载别家公司的软件才能运行,我这里感到疑惑---————是不是说如果 一间软件公司他能做出一个像微软操作系统那样的受大众十分喜爱的软件 那么他就可为所欲为 对一些不友好的软件公司进行屏蔽,从而决定了其他公司的生存??? 第二章 第一节 之第二部分 这里说到程序员作为该单元的开发者 必须亲自写开发单元 但如果遇到上头委派的一件又急又大型的项目 那么还要写单元测试?或者不能让别人写? 第三章 第二节 这里说的

汇编语言第五章总结

两种指令[BX]和loop指令 下面将知识点总结如下: 一.先介绍描述性符号() (ax)(al)(20000H) ((ds)*16+(bx)) ()中的元素可以有三种类型: 1.寄存器名  2.段寄存器名  3.内存单元的物理地址(20位数据) 举例(X)应用: 1.ax内容为0010H,(ax)=0010H 2.2000:1000内容为0010,(21000H)=0010H 3.指令 mov ax,[2],(ax)=((ds)*16+2) 4.push ax: (sp)=(sp)-2 ((s

汇编语言:第五章 [BX]和loop指令

1.[bx]与内存单元 [bx]是指 段地址在DS中,偏移地址在bx中的内存单元 2.loop 用于描述循环 3.我们定义的描述性符号 "()" 寄存器: (ax/al)表示ax/al寄存器中的内容 段寄存器:   ((ds)*16+(bx))表示段地址为ds内容,偏移地址为bx内容的内存单元的内容 内存单元:   (20000H)表示20000H内存单元中的内容 4.约定符号idata表示常量 mov ax,idata 表示mov ax,1 mov ax,2 等 mov ax,[id

第五章 电子星球

                   第五章         电子星球   山高高兮.路长长,岁月悠悠兮.转眼空.   镇楼竹: 1. 秀竹一枝自宛然, 莫愁风雨损华年. 几番颠扑呈贞骨, 露重霜寒节更坚. 2. 纤纤凤竹长漓边, 不共山花斗野妍. 时对清流摇倩影, 溪流常伴乐怡然. 3. 坚节何愁风雨多, 晴天朗日更婆娑. 生凉不荫趋炎客, 惹得骚人为咏歌.   咏经典物理.戏现代理论物理: 在山泉水洁如冰, 溅玉飞珠迸有声. 流入大江清浊混, 滔滔何日见澄明.     一.   批驳现代理论

深入浅出Zabbix 3.0 -- 第十五章 Zabbix 协议与API

今天是六.一儿童节,祝小朋友们节日快乐!发完此文就带我家小朋友出去玩耍了. 第十五章 Zabbix 协议与API 本章将介绍和开发相关的Zabbix协议和API的内容,通过对Zabbix协议和API的深入了解,你可以利用Zabbix协议编写客户端程序并将其嵌入的产品或系统中,并将数据发送到Zabbix server,这在无法安装Zabbixagent等程序的场景(例如专用的嵌入式系统)中非常有用.你也可以利用Zabbix API开发自己的业务系统,或灵活的与现有系统整合集成. 15.1 Zabb

第五章搭建S3C6410开发板的测试环境

第五章本章主要介绍开发板的调试环境的搭建,以及如何将Android系统安装开发板上. 开发板是开发和学习嵌入式技术的主要硬件设备. 尽管可以在PC上开发Linux驱动,然后重新编译成ARM构架的Linux驱动模块,但最终都是要在开发板上进行测试的. 开发板从技术上说与手机类似,包含显示器.键盘.Wi-Fi.蓝牙等模块.开发板可扩展的端口多,容易开发定制的硬件. 第一节S3V6410开发板简介 S3C6410是一款低功耗.高性价比的RISC处理器,它给予ARM11内核,可以广泛应用于移动电话和通用

JS复习第五章

第五章 引用类型 一.Object类型 创建object实例的方式有两种. 第一种是使用new操作符后跟object构造函数,如下所示: ver person = new Object( ) ; person.name = “Nicholas” ; person.age = 29 ; 另一种方式是使用对象字面量表示法: var person = { name : “Nicholas”, age : 29 } ; 对象字面量是向函数传递大量可选参数的首选形式. function displayIn

JavaScript高级程序设计(第3版)第五章读书笔记

第五章 引用类型 创建Object实例的方式有两种,第一种是使用new操作符后跟Object构造函数,例如: var person = new Object( ); person.name = “Nicholas”; person.age=29; 第二种是使用对象字面量表示法.如: var person = { name : “Nicholas”, age : 29 }; 在最后一个属性后面添加逗号,会在IE7及更早版本和Opera中导致错误. 两种访问对象属性的方法,一是方括号语法,例如per

现代编译原理--第五章(活动记录)

(转载请表明出处  http://www.cnblogs.com/BlackWalnut/p/4559245.html ) 第五章是到目前位置最让我头疼的一章,不是因为难,是因为对最终的目的不太明确.整章前半部分用十分精简的语言介绍了一个新的概念,活动记录,也就是在函数调用时,一个调用栈究竟发生了什么事.但是,在最终编码实现过程中,总不能理解作者为什么给了这些变量?或者说,完全不知道作者究竟想让我完成一个怎样的功能.纠结了好几天,后来索性往后继续看,看看能不能找到其他的线索.直到看完后一章,硬着