检测点答案课件

上传人:无*** 文档编号:241503399 上传时间:2024-06-30 格式:PPTX 页数:41 大小:439.55KB
返回 下载 相关 举报
检测点答案课件_第1页
第1页 / 共41页
检测点答案课件_第2页
第2页 / 共41页
检测点答案课件_第3页
第3页 / 共41页
点击查看更多>>
资源描述
1教学内容第第1 1章章 基础知识基础知识第第2 2章章 寄存器寄存器第第3 3章章 寄存器寄存器(内存访问内存访问)第第4 4章章 第一个程序第一个程序第第5 5章章 BXBX和和looploop指令指令第第6 6章章 包含多个段的程序包含多个段的程序第第7 7章章 更灵活的定位内存地址的方法更灵活的定位内存地址的方法第第8 8章章 数据处理的两个基本问题数据处理的两个基本问题第第9 9章章 转移指令的原理转移指令的原理第第1010章章 CALLCALL和和RETRET指令指令第第1111章章 标志寄存器标志寄存器第第1212章章 内中断内中断第第1313章章 intint指令指令2第1章 基础知识1.1 1.1 机器语言机器语言 1.9 1.9 数据总线数据总线1.2 1.2 汇编语言的产生汇编语言的产生 1.10 1.10 控制总线控制总线1.3 1.3 汇编语言的组成汇编语言的组成 1.11 1.11 内存地址空间(概述)内存地址空间(概述)1.4 1.4 存储器存储器 1.12 1.12 主板主板1.5 1.5 指令和数据指令和数据 1.13 1.13 接口卡接口卡1.6 1.6 存储单元存储单元 1.14 1.14 各类存储器芯片各类存储器芯片1.7 CPU1.7 CPU对存储器的读写对存储器的读写 1.15 1.15 内存地址空间内存地址空间1.8 1.8 地址总线地址总线检测点检测点1.1(1)1个个CPU的寻址能力为的寻址能力为8KB,那么它的地址总线的宽度为,那么它的地址总线的宽度为13位。位。(2)1KB的存储器有的存储器有1024个存储单元,存储单元的编号从个存储单元,存储单元的编号从0到到1023。(3)1KB的存储器可以存储的存储器可以存储8192(213)个个bit,1024个个Byte。(4)1GB是是1073741824(230)个个Byte、1MB是是1048576(220)个个Byte、1KB是是1024(210)个个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)在存储器中,数据和程序以)在存储器中,数据和程序以 二进制二进制 形式存放。形式存放。第2章 寄存器(CPU工作原理)2.1 2.1 通用寄存器通用寄存器2.2 2.2 字在寄存器中的存储字在寄存器中的存储2.3 2.3 几条汇编指令几条汇编指令2.4 2.4 物理地址物理地址2.5 162.5 16位结构的位结构的CPUCPU2.6 2.6 8086CPU8086CPU给给出出物物理理地地址址的方法的方法2.7 2.7“段地址段地址16+16+偏移地址偏移地址 =物理地址物理地址”的本质含义的本质含义2.8 2.8 段的概念段的概念2.9 2.9 段寄存器段寄存器2.10 CS2.10 CS和和IPIP2.12 2.12 代码段代码段检测点检测点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检测点检测点2.1(2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。movax,2AX=2addax,axAX=4addax,axAX=8addax,axAX=16检测点检测点2.2(2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为1001H,最大为2000H。当段地址给定为1001H以下和2000H以上,CPU无论怎么变化偏移地址都无法寻到20000H单元。解题过程:物理地址SA*16+EA20000hSA*16+EASA=(20000h-EA)/16=2000h-EA/16EA取最大值时,SA=2000h-ffffh/16=1001h,SA为最小值EA取最小值时,SA=2000h-0h/16=2000h,SA为最大值检测点检测点2.2(1)给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为0010H到1000FH。解题过程:物理地址SA*16+EAEA的变化范围为0hffffh物理地址范围为(SA*16+0h)(SA*16+ffffh)现在SA=0001h,那么寻址范围为(0001h*16+0h)(0001h*16+ffffh)=0010h1000fh第3 章寄存器(内存访问)3.1 3.1 内存中字的存储内存中字的存储 3.2 DS3.2 DS和和addressaddress3.3 3.3 字的传送字的传送3.4 mov3.4 mov、addadd、subsub指令指令3.5 3.5 数据段数据段3.6 3.6 栈栈3.7 CPU3.7 CPU提供的栈机制提供的栈机制3.8 3.8 栈顶超界的问题栈顶超界的问题3.9 push3.9 push、poppop指令指令3.10 3.10 栈段栈段检测点检测点3.1(1)在DEBUG中,用D0:0lf查看内存,结果如下:0000:00007080F030EF6030E2-00808012662022600000:00106226E6D6CC2E3C3B-ABBA000026066688下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值movax,1movds,axmovax,0000ax=2662Hmovbx,0001bx=E626Hmovax,bxax=E626Hmovax,0000ax=2662Hmovbx,0002bx=D6E6Haddax,bxax=FD48Haddax,0004ax=2C14Hmovax,0ax=0moval,0002ax=00e6Hmovbx,0bx=0movbl,000cbx=0026Haddal,blax=000CH检测点检测点3.1(2)内存中的情况如图3.6所示各寄存器的初始值:cs=2000h,ip=0,ds=1000h,ax=0,bx=0;写出CPU执行的指令序列(用汇编指令写出)。写出CPU执行每条指令后,CS、IP和相关寄存器的数值。再次体会:数据和程序有区别吗?如何确定内存中的信息哪些是数据,哪些是程序?检测点检测点3.2(1)补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20000H-2000FH中。movax,1000Hmovds,axmovax,2000Hmovss,axmovsp,10hpush0push2push4push6push8pushApushCpushE检测点检测点3.2(2)补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20000H-2000FH中。movax,2000Hmovds,axmovax,1000Hmovss,axmovsp,0popepopcpopapop8pop6pop4pop2pop0第第4 4章章 第一个程序第一个程序4.1 4.1 一个源程序从写出到执行的过程一个源程序从写出到执行的过程4.2 4.2 源程序源程序4.3 4.3 编辑源程序编辑源程序4.4 4.4 编译编译4.5 4.5 连接连接4.6 4.6 以简化的方式进行编译和连接以简化的方式进行编译和连接4.7 1.exe4.7 1.exe的执行的执行4.8 4.8 可执行文件中的程序装入内存并运行的原可执行文件中的程序装入内存并运行的原理理4.9 4.9 程序执行过程的跟踪程序执行过程的跟踪第五章第五章 BXBX和和looploop指令指令5.1 bx5.1 bx5.2 Loop5.2 Loop指令指令5.3 5.3 在在debugdebug中跟踪用中跟踪用looploop指令实现的循环程序指令实现的循环程序5.4 debug5.4 debug和汇编编译器和汇编编译器masmmasm对指令的不同处理对指令的不同处理5.5 loop5.5 loop和和bxbx的联合应用的联合应用5.6 5.6 段前缀段前缀5.7 5.7 一段安全的空间一段安全的空间 5.8 5.8 段前缀的使用段前缀的使用第六章第六章 包含多个段的程序包含多个段的程序6.1 6.1 在代码段中使用数据在代码段中使用数据6.2 6.2 在代码段中使用栈在代码段中使用栈6.3 6.3 将数据、代码、栈放入不同的段将数据、代码、栈放入不同的段检测点检测点6.1(1)下面的程序实现依次用内存)下面的程序实现依次用内存0:00:15单元中的内容改写程单元中的内容改写程序中的数据,完成程序:序中的数据,完成程序:assumecs:codesgcodesgsegmentdw0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hstart:movax,0movds,axmovbx,0movcx,8s:movax,bxmovcs:bx,axaddbx,2loopsmovax,4c00hint21hcodesgendsendstart检测点检测点6.1(2)下面的程序实现依次用内存)下面的程序实现依次用内存0:00: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:pushbxpopcs:bx;或或popss:bxaddbx,2loopsmovax,4c00hint21hcodesgendsendstart第七章第七章 更灵活的定位内存地更灵活的定位内存地址的方法址的方法7.1 and7.1 and和和oror指令指令7.4 7.4 大小写转换的问题大小写转换的问题7.5 80867.5 8086的寻址方式的寻址方式第八章第八章 数据处理的两个基本数据处理的两个基本问题问题8.1 bx8.1 bx、sisi、didi、bpbp8.2 8.2 机器指令处理的数据所在位置机器指令处理的数据所在位置8.3 8.3 汇编语言中数据位置的表达汇编语言中数据位置的表达8.4 8.4 寻址方式寻址方式8.5 8.5 指令要处理的数据有多长?指令要处理的数据有多长?8.7 div 8.7 div 指令指令8.8 8.8 伪指令伪指令 dddd8.9 dup8.9 dup第九章第九章 转移指令的原理转移指令的原理9.1 9.1 操作符操作符offsetoffset9.2 jmp9.2 jmp指令指令9.3 9.3 依据位移进行转移的依据位移进行转移的jmpjmp指令指令9.4 9.4 转移的目的地址在指令中的转移的目的地址在指令中的jmpjmp指令指令9.5 9.5 转移地址在寄存器中的转移地址在寄存器中的jmpjmp指令指令9.6 9.6 转移地址在内存中的转移地址在内存中的jmpjmp指令指令9.7 jcxz9.7 jcxz指令指令9.8 loop9.8 loop指令指令9.9 9.9 根据位移进行转移的意义根据位移进行转移的意义9.10 9.10 编译器对转移位移超界的检测编译器对转移位移超界的检测检测点检测点9.1(1)程序如下。)程序如下。assumecs:codedatasegmentdw2dup(0)dataendscodesegmentstart:movax,datamovds,axmovbx,0jmpwordptrbx+1codeendsendstart若要使若要使jmp指令执行后,指令执行后,CS:IP指向程序的第一条指令,在指向程序的第一条指令,在data段中应段中应该定义哪些数据该定义哪些数据?答案答案db3dup(0)答案答案dw2dup(0)答案答案dd0检测点检测点9.1(1)程序如下。)程序如下。assumecs:codedatasegmentdd12345678hdataendscodesegmentstart:movax,datamovds,axmovbx,0movbx,bx;或或movbx,wordptr0;或或movbx,offsetstartmovbx+2,cs;或或movbx+2,codejmpdwordptrds:0codeendsendstart补全程序,使用补全程序,使用jmp指令执行后,指令执行后,CS:IP指向程序的第一条指令。指向程序的第一条指令。检测点检测点9.1(3)用)用Debug查看内存,结果如下:查看内存,结果如下:2000:1000BE0006000000.则此时,则此时,CPU执行指令:执行指令:movax,2000hmoves,axjmpdwordptres:1000h后,后,(cs)=0006H,(ip)=00BEH检测点检测点9.2补全编程,利用补全编程,利用jcxz指令,实现在内存指令,实现在内存2000H段中查找第一个值为段中查找第一个值为0的的字节,找到后,将它的偏移地址存储在字节,找到后,将它的偏移地址存储在dx中。中。assumecs:codecodesegmentstart:movax,2000hmovds,axmovbx,0s:movch,0movcl,bxjcxzok;当当cx=0时,时,CS:IP指向指向OKincbxjmpshortsok:movdx,bxmovax,4c00hint21hcodeendsendstart检测点检测点9.3补全编程,利用补全编程,利用loop指令,实现在内存指令,实现在内存2000H段中查找第一个值为段中查找第一个值为0的的字节,找到后,将它的偏移地址存储在字节,找到后,将它的偏移地址存储在dx中。中。assumecs:codecodesegmentstart:movax,2000hmovds,axmovbx,0s:movcl,bxmovch,0inccxincbxloopsok:decbxmovdx,bxmovax,4c00hint21hcodeendsendstart第十章第十章 CALLCALL和和RETRET指令指令10.1 ret和和retf10.2 call指令指令10.3 依据位移进行转移的依据位移进行转移的call指令指令10.4 转移的目的地址在指令中的转移的目的地址在指令中的call指令指令10.5 转移的目的地址在寄存器中的转移的目的地址在寄存器中的call指令指令10.6 转移的目的地址在内存中的转移的目的地址在内存中的call指令指令10.7 call和和ret的配合使用的配合使用10.8 mul指令指令10.9 模块化程序设计模块化程序设计10.10 参数和结果传递的问题参数和结果传递的问题10.11 批量数据的传递批量数据的传递10.12 寄存器冲突的问题寄存器冲突的问题检测点检测点10.1补全程序,实现从内存补全程序,实现从内存1000:0000处开始执行指令。处开始执行指令。assumecs:codestacksegmentdb16dup(0)stackendscodesegmentstart:movax,stackmovss,axmovsp,16movax,1000hpushaxmovax,0pushaxretfcodeendsendstart检测点检测点10.2下面的程序执行后,下面的程序执行后,ax中的数值为多少?中的数值为多少?内存地址内存地址机器码机器码汇编指令汇编指令执行后情况执行后情况1000:0b80000movax,0ax=0ip指向指向1000:31000:3e80100callspopipip指向指向1000:71000:640incax1000:758s:popaxax=6检测点检测点10.3下面的程序执行后,下面的程序执行后,ax中的数值为多少?中的数值为多少?内存地址内存地址机器码机器码汇编指令汇编指令执行后情况执行后情况 1000:0b80000movax,0ax=0,ip指向指向1000:31000:39a09000010callfarptrspopcs,popip,ip指向指向1000:91000:840incax1000:958s:popaxax=8haddax,axax=10hpopbxbx=1000haddax,bxax=1010h检测点检测点10.4下面的程序执行后,下面的程序执行后,ax中的数值为多少?中的数值为多少?内存地址内存地址机器码机器码汇编指令汇编指令执行后情况执行后情况1000:0b80600movax,6ax=6,ip指向指向1000:31000:3ffd0callaxpopip,ip指向指向1000:61000:540incax1000:658movbp,spbp=sp=fffehaddax,bpax=6+ds:(fffeh)=6+5=0bh检测点检测点10.5(1)下面的程序执行后,)下面的程序执行后,ax中的数值为多少?中的数值为多少?assumecs:codestacksegmentdw8dup(0)stackendscodesegmentstart:movax,stackmovss,axmovsp,16movds,axmovax,0callwordptrds:0ehincaxincaxincaxmovax,4c00hint21hcodeendsendstart检测点检测点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=cs0c5bhsubbx,ss:0eh;bx=cs-cs=0movax,4c00hint21hcodesgendsendstart第十一章第十一章 标志寄存器标志寄存器11.1 ZF11.1 ZF标志标志11.2 PF11.2 PF标志标志11.3 SF11.3 SF标志标志11.4 CF11.4 CF标志标志11.5 OF11.5 OF标志标志11.6 adc11.6 adc指令指令11.7 sbb11.7 sbb指令指令11.8 cmp11.8 cmp指令指令11.9 11.9 检测比较结果的条件转移指令检测比较结果的条件转移指令11.10 DF11.10 DF标志和串传送指令标志和串传送指令11.11 pushf11.11 pushf和和popfpopf11.12 11.12 标志寄存器在标志寄存器在DebugDebug中的表示中的表示检测点检测点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检测点检测点11.2写出下面每条指令执行后,写出下面每条指令执行后,ZF、PF、SF、CF、OF等标志位等标志位的值。的值。alCFOFSFZFPFsubal,al0h/00000000b00011moval,10h10h/00010000b00011addal,90ha0h/10100000b00101moval,80h80h/10000000b00101addal,80h0h/00000000b11011moval,0fch0fch/11111100b11011addal,05h1h/00000001b10000moval,7dh7dh/11111101b10000addal,0bh88h/10001000b01101检测点检测点11.3(1)补全下面的程序,统计补全下面的程序,统计F000:0处处32个字节中,大小在个字节中,大小在32,128的数据个数。的数据个数。movax,0f000hmovds,axmovbx,0;ds:bx指向第一个字节指向第一个字节movdx,0;初始化累加器初始化累加器movcx,32s:moval,bxcmpal,32;和和32进行比较进行比较jbs0;如果低于如果低于al转到转到s0,继续循环继续循环cmpal,128;和和128进行比较进行比较jas0;如果高于如果高于al转到转到s0,继续循环继续循环incdxs0:incbxloops检测点检测点11.3(2)补全下面的程序,统计补全下面的程序,统计F000:0处处32个字节中,大小在个字节中,大小在(32,128)的数据个数。的数据个数。movax,0f000hmovds,axmovbx,0;ds:bx指向第一个字节指向第一个字节movdx,0;初始化累加器初始化累加器movcx,32s:moval,bxcmpal,32;和和32进行比较进行比较jnas0;如果不高于如果不高于al转到转到s0,继续循环继续循环cmpal,128;和和128进行比较进行比较jnbs0;如果不低于如果不低于al转到转到s0,继续循环继续循环incdxs0:incbxloopsp经常不断地学习,你就什么都知道。你知道得越多,你就越有力量pStudyConstantly,AndYouWillKnowEverything.TheMoreYouKnow,TheMorePowerfulYouWillBe写在最后ThankYou在别人的演说中思考,在自己的故事里成长ThinkingInOtherPeopleSSpeeches,GrowingUpInYourOwnStory讲师:XXXXXXXX年XX月XX日
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!