




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 教学内容 第1章基础知识第2章寄存器第3章寄存器 内存访问 第4章第一个程序第5章 BX 和loop指令第6章包含多个段的程序第7章更灵活的定位内存地址的方法第8章数据处理的两个基本问题第9章转移指令的原理第10章CALL和RET指令第11章标志寄存器第12章内中断第13章int指令 2020 3 20 1 2 第1章基础知识 1 1机器语言1 9数据总线1 2汇编语言的产生1 10控制总线1 3汇编语言的组成1 11内存地址空间 概述 1 4存储器1 12主板1 5指令和数据1 13接口卡1 6存储单元1 14各类存储器芯片1 7CPU对存储器的读写1 15内存地址空间1 8地址总线 2020 3 20 2 检测点1 1 1 1个CPU的寻址能力为8KB 那么它的地址总线的宽度为13位 2 1KB的存储器有1024个存储单元 存储单元的编号从0到1023 3 1KB的存储器可以存储8192 2 13 个bit 1024个Byte 4 1GB是1073741824 2 30 个Byte 1MB是1048576 2 20 个Byte 1KB是1024 2 10 个Byte 5 8080 8088 80296 80386的地址总线宽度分别为16根 20根 24根 32根 则它们的寻址能力分别为 64 KB 1 MB 16 MB 4 GB 6 8080 8088 8086 80286 80386的数据总线宽度分别为8根 8根 16根 16根 32根 则它们一次可以传送的数据为 1 B 1 B 2 B 2 B 4 B 7 从内存中读取1024字节的数据 8086至少要读512次 80386至少要读256次 8 在存储器中 数据和程序以二进制形式存放 2020 3 20 3 第2章寄存器 CPU工作原理 2 1通用寄存器2 2字在寄存器中的存储2 3几条汇编指令2 4物理地址2 516位结构的CPU2 68086CPU给出物理地址的方法 2 7 段地址 16 偏移地址 物理地址 的本质含义2 8段的概念2 9段寄存器2 10CS和IP2 12代码段 2020 3 20 4 检测点2 1 1 写出每条汇编指令执行后相关寄存器中的值 movax 62627AX F4A3Hmovah 31HAX 31A3Hmoval 23HAX 3123Haddax axAX 6246Hmovbx 826CHBX 826CHmovcx axCX 6246Hmovax bxAX 826CHaddax bxAX 04D8Hmoval bhAX 0482Hmovah blAX 6C82Haddah ahAX D882Haddal 6AX D888Haddal alAX D810Hmovax cxAX 6246H 2020 3 20 5 检测点2 1 2 只能使用目前学过的汇编指令 最多使用4条指令 编程计算2的4次方 movax 2AX 2addax axAX 4addax axAX 8addax axAX 16 2020 3 20 6 检测点2 2 2 有一数据存放在内存20000H单元中 现给定段地址为SA 若想用偏移地址寻到此单元 则SA应满足的条件是 最小为1001H 最大为2000H 当段地址给定为1001H以下和2000H以上 CPU无论怎么变化偏移地址都无法寻到20000H单元 解题过程 物理地址 SA 16 EA20000h SA 16 EASA 20000h EA 16 2000h EA 16EA取最大值时 SA 2000h ffffh 16 1001h SA为最小值EA取最小值时 SA 2000h 0h 16 2000h SA为最大值 2020 3 20 7 检测点2 2 1 给定段地址为0001H 仅通过变化偏移地址寻址 CPU的寻址范围为0010H到1000FH 解题过程 物理地址 SA 16 EAEA的变化范围为0h ffffh物理地址范围为 SA 16 0h SA 16 ffffh 现在SA 0001h 那么寻址范围为 0001h 16 0h 0001h 16 ffffh 0010h 1000fh 2020 3 20 8 第3章寄存器 内存访问 3 1内存中字的存储3 2DS和 address 3 3字的传送3 4mov add sub指令3 5数据段3 6栈3 7CPU提供的栈机制3 8栈顶超界的问题3 9push pop指令3 10栈段 2020 3 20 9 检测点3 1 1 在DEBUG中 用 D0 0lf 查看内存 结果如下 0000 00007080F030EF6030E2 00808012662022600000 00106226E6D6CC2E3C3B ABBA000026066688下面的程序执行前 AX 0 BX 0 写出每条汇编指令执行完后相关寄存器中的值movax 1movds axmovax 0000 ax 2662Hmovbx 0001 bx E626Hmovax bxax E626Hmovax 0000 ax 2662Hmovbx 0002 bx D6E6Haddax bxax FD48Haddax 0004 ax 2C14Hmovax 0ax 0moval 0002 ax 00e6Hmovbx 0bx 0movbl 000c bx 0026Haddal blax 000CH 2020 3 20 10 检测点3 1 2 内存中的情况如图3 6所示各寄存器的初始值 cs 2000h ip 0 ds 1000h ax 0 bx 0 写出CPU执行的指令序列 用汇编指令写出 写出CPU执行每条指令后 CS IP和相关寄存器的数值 再次体会 数据和程序有区别吗 如何确定内存中的信息哪些是数据 哪些是程序 2020 3 20 11 2020 3 20 12 检测点3 2 1 补全下面的程序 使其可以将10000H 1000FH中的8个字 逆序拷贝到20000H 2000FH中 movax 1000Hmovds axmovax 2000Hmovss axmovsp 10hpush 0 push 2 push 4 push 6 push 8 push A push C push E 2020 3 20 13 检测点3 2 2 补全下面的程序 使其可以将10000H 1000FH中的8个字 逆序拷贝到20000H 2000FH中 movax 2000Hmovds axmovax 1000Hmovss axmovsp 0pop e pop c pop a pop 8 pop 6 pop 4 pop 2 pop 0 2020 3 20 14 第4章第一个程序 4 1一个源程序从写出到执行的过程4 2源程序4 3编辑源程序4 4编译4 5连接4 6以简化的方式进行编译和连接4 71 exe的执行4 8可执行文件中的程序装入内存并运行的原理4 9程序执行过程的跟踪 2020 3 20 15 第五章 BX 和loop指令 5 1 bx 5 2Loop指令5 3在debug中跟踪用loop指令实现的循环程序5 4debug和汇编编译器masm对指令的不同处理5 5loop和 bx 的联合应用5 6段前缀5 7一段安全的空间5 8段前缀的使用 2020 3 20 16 第六章包含多个段的程序 6 1在代码段中使用数据6 2在代码段中使用栈6 3将数据 代码 栈放入不同的段 2020 3 20 17 检测点6 1 1 下面的程序实现依次用内存0 0 0 15单元中的内容改写程序中的数据 完成程序 assumecs codesgcodesgsegmentdw0123h 0456h 0789h 0abch 0defh 0fedh 0cbah 0987hstart movax 0movds axmovbx 0movcx 8s movax bx movcs bx axaddbx 2loopsmovax 4c00hint21hcodesgendsendstart 2020 3 20 18 检测点6 1 2 下面的程序实现依次用内存0 0 0 15单元中的内容改写程序中的数据 数据的传送用栈来进行 栈空间设置在程序内 完成程序 assumecs codesgcodesgsegmentdw0123h 0456h 0789h 0abch 0defh 0fedh 0cbah 0987hdw0 0 0 0 0 0 0 0 0 0start movax codesg 或movax csmovss axmovsp 24h 或movsp 36movax 0movds axmovbx 0movcx 8s push bx popcs bx 或popss bx addbx 2loopsmovax 4c00hint21hcodesgendsendstart 2020 3 20 19 第七章更灵活的定位内存地址的方法 7 1and和or指令7 4大小写转换的问题7 58086的寻址方式 2020 3 20 20 第八章数据处理的两个基本问题 8 1bx si di bp8 2机器指令处理的数据所在位置8 3汇编语言中数据位置的表达8 4寻址方式8 5指令要处理的数据有多长 8 7div指令8 8伪指令dd8 9dup 2020 3 20 22 第九章转移指令的原理 9 1操作符offset9 2jmp指令9 3依据位移进行转移的jmp指令9 4转移的目的地址在指令中的jmp指令9 5转移地址在寄存器中的jmp指令9 6转移地址在内存中的jmp指令9 7jcxz指令9 8loop指令9 9根据位移进行转移的意义9 10编译器对转移位移超界的检测 2020 3 20 23 检测点9 1 1 程序如下 assumecs codedatasegmentdw2dup 0 dataendscodesegmentstart movax datamovds axmovbx 0jmpwordptr bx 1 codeendsendstart若要使jmp指令执行后 CS IP指向程序的第一条指令 在data段中应该定义哪些数据 答案 db3dup 0 答案 dw2dup 0 答案 dd0 2020 3 20 24 检测点9 1 1 程序如下 assumecs codedatasegmentdd12345678hdataendscodesegmentstart movax datamovds axmovbx 0mov bx bx 或mov bx wordptr0 或mov bx offsetstartmov bx 2 cs 或mov bx 2 codejmpdwordptrds 0 codeendsendstart补全程序 使用jmp指令执行后 CS IP指向程序的第一条指令 2020 3 20 25 检测点9 1 3 用Debug查看内存 结果如下 2000 1000BE0006000000 则此时 CPU执行指令 movax 2000hmoves axjmpdwordptres 1000h 后 cs 0006H ip 00BEH 2020 3 20 26 检测点9 2补全编程 利用jcxz指令 实现在内存2000H段中查找第一个值为0的字节 找到后 将它的偏移地址存储在dx中 assumecs codecodesegmentstart movax 2000hmovds axmovbx 0s movch 0movcl bx jcxzok 当cx 0时 CS IP指向OKincbxjmpshortsok movdx bxmovax 4c00hint21hcodeendsendstart 2020 3 20 27 检测点9 3补全编程 利用loop指令 实现在内存2000H段中查找第一个值为0的字节 找到后 将它的偏移地址存储在dx中 assumecs codecodesegmentstart movax 2000hmovds axmovbx 0s movcl bx movch 0inccxincbxloopsok decbxmovdx bxmovax 4c00hint21hcodeendsendstart 2020 3 20 28 第十章CALL和RET指令 10 1ret和retf10 2call指令10 3依据位移进行转移的call指令10 4转移的目的地址在指令中的call指令10 5转移的目的地址在寄存器中的call指令10 6转移的目的地址在内存中的call指令10 7call和ret的配合使用10 8mul指令10 9模块化程序设计10 10参数和结果传递的问题10 11批量数据的传递10 12寄存器冲突的问题 2020 3 20 29 检测点10 1补全程序 实现从内存1000 0000处开始执行指令 assumecs codestacksegmentdb16dup 0 stackendscodesegmentstart movax stackmovss axmovsp 16movax 1000hpushaxmovax 0pushaxretfcodeendsendstart 2020 3 20 30 检测点10 2下面的程序执行后 ax中的数值为多少 内存地址机器码汇编指令执行后情况1000 0b80000movax 0ax 0ip指向1000 31000 3e80100callspopipip指向1000 71000 640incax1000 758s popaxax 6 2020 3 20 31 检测点10 3下面的程序执行后 ax中的数值为多少 内存地址机器码汇编指令执行后情况1000 0b80000movax 0ax 0 ip指向1000 31000 39a09000010callfarptrspopcs popip ip指向1000 91000 840incax1000 958s popaxax 8haddax axax 10hpopbxbx 1000haddax bxax 1010h 2020 3 20 32 检测点10 4下面的程序执行后 ax中的数值为多少 内存地址机器码汇编指令执行后情况1000 0b80600movax 6ax 6 ip指向1000 31000 3ffd0callaxpopip ip指向1000 61000 540incax1000 658movbp spbp sp fffehaddax bp ax 6 ds fffeh 6 5 0bh 2020 3 20 33 检测点10 5 1 下面的程序执行后 ax中的数值为多少 assumecs codestacksegmentdw8dup 0 stackendscodesegmentstart movax stackmovss axmovsp 16movds axmovax 0callwordptrds 0eh incaxincaxincaxmovax 4c00hint21hcodeendsendstart 2020 3 20 34 检测点10 5 2 下面的程序执行后 ax和bx中的数值为多少 assumecs codesgstacksegmentdw8dup 0 stackendscodesgsegmentstart movax stackmovss axmovsp 10hmovwordptrss 0 offsets ss 0 1ahmovss 2 cs ss 2 cscalldwordptrss 0 cs入栈 ip 19h入栈 转到cs 1ah处执行指令 ss e cs ss c ipnops movax offsets ax 1ahsubax ss 0ch ax 1ah ss 0ch 1ah 19h 1movbx cs bx cs 0c5bhsubbx ss 0eh bx cs cs 0movax 4c00hint21hcodesgendsendstart 2020 3 20 35 第十一章标志寄存器 11 1ZF标志11 2PF标志11 3SF标志11 4CF标志11 5OF标志11 6adc指令11 7sbb指令11 8cmp指令11 9检测比较结果的条件转移指令11 10DF标志和串传送指令11 11pushf和popf11 12标志寄存器在Debug中的表示 2020 3 20 36 检测点11 1写出下面每条指令执行后 ZF PF SF 等标志位的值 subal alal 0hZF 1PF 1SF 0moval 1al 1hZF 1PF 1SF 0pushaxax 1hZF 1PF 1SF 0popbxbx 1hZF 1PF 1SF 0addal blal 2hZF 0PF 0SF 0addal 10al 12hZF 0PF 1SF 0mulalax 144hZF 0PF 1SF 0 2020 3 20 37 检测点11 2写出下面每条指令执行后 ZF PF SF CF OF等标志位的值 alCFOFSFZFPFsubal al0h 00000000b00011moval 10h10h 00010000b00011addal 90ha0h 10100000b00101moval 80h80h 10000000b00101addal 80h0h 00000000b11011mov
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 火花线切割机床项目投资可行性研究分析报告(2024-2030版)
- 中国医用纯化水设备行业发展监测及发展战略规划报告
- 中国汽车平衡块行业市场全景评估及发展战略规划报告
- 中国电容器用薄膜市场调查报告
- 2025年中国气瓶光面环规行业市场发展前景及发展趋势与投资战略研究报告
- 2025-2030年中国全钢中央台项目投资可行性研究分析报告
- 中国川乌头行业市场深度评估及投资战略规划报告
- 中国回光灯市场发展前景预测及投资战略咨询报告
- 早教班老师培训课件
- 同城配送合同
- 高三家长会班主任发言稿课件
- 学前幼儿园-《快乐的小鼹鼠》教学课件设计
- 3停止间转法教案
- 2022-2023学年重庆市合川市三下数学期末学业质量监测模拟试题含解析
- 全过程造价咨询服务实施方案
- 初二生地会考复习资料全
- 里氏硬度法检测钢材强度范围记录表、钢材里氏硬度与抗拉强度范围换算表
- 四川省宜宾市翠屏区中学2022-2023学年数学八年级第二学期期末检测试题含解析
- 2020-2021成都石室联合中学蜀华分校小学数学小升初模拟试卷附答案
- 某冶金机械厂供配电系统设计
- 《在中亚细亚草原上》赏析 课件
评论
0/150
提交评论