微机原理习题课_new1.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如果该JMP指令的机器码是0EBE7H ⑴可以得知跳转偏移量为0E7H ⑵指令JMP SHORT NEXT1是占有2个字节的机器码,那么下一条指令偏移地址为001EH + 0002H =0020H。 ⑶JMP转移去的偏移地址是JMP的下一条指令偏移地址加上跳转偏移量:可以发现跳转偏移量(0E7H)是一个负值,因此可以得知是跳到程序前端,(减法运算[补码化],实际相当于0020H-0019H=0007H) 解释: 指令 JMP SHORT NEXT1 操作码 ( 0 EBH ) 偏移地址 : 001EH 操作数 ( 0 E 7 H ) …… + 001FH 0020H 0007H 过程调用指令在运用时强调实现模块化的编程。调用指令(CALL)与返回指令(RET)实现程序模块良好的衔接。 分类情况:仍然按段内/段间以及直接/间接。 例:已知当前一条近过程过程调用指令CALL near_proc所在的偏移地址为1000H,当前SP=2000H,那么执行完该CALL指令后,堆栈段中(1FFEH)=? 答案:03H 指令:3个字节 解释: ⑴首先从已知可知该指令是一段内直接调用过程,指令码是占用3个字节的机器码。 ⑵执行CALL指令后,系统会将断点地址,即CALL指令的下一条指令的偏移地址(即1003H )压入堆栈。 ⑶压入堆栈的过程:堆栈指针减2(SP=SP-2),本题原SP=2000H,更新后为SP=1FFEH,而压入的内容(1003H)根据高地址占用高字节,低地址占用低字节的原则,可知(1FFFH)=10H,(1FFEH)=03H。 解释: 执行指令前 执行指令后 03H 10H IP=1003H SP=1FFEH 四、汇编语言指令系统 要点1:理解操作数, 注意区分变量/表达式 常量 寄存器 存储器操作数: 具有段属性、偏移量属性和类属性。 标号:在代码段中。 变量:存放数据的存储单元的名字,在数据段或堆栈段中。 表达式: (由运算符和被操作数组成)汇编时获得。 数值表达式:常量和运算符组成,汇编时产生立即数。 地址表达式:由常量、变量、标号、寄存器、运算符组成,表示存储器的段内偏移地址。 运算符 算术(+,-)逻辑(AND,OR)关系(EQ,LT)分析(OFFSET, SIZE)合成(PTR) 要点2: 注意区分逻辑运算符和逻辑指令。 运算符出现在操作数部分,在汇编时完成运算;指令出现在操作码部分,运行exe时由CPU执行。例如: AND AL,12H AND 0FH ;等价于AND AL,02H 数值表达式作为操作数 标号名和变量名——反汇编看不到 MOV DATA1, AX JMP NEXT 习题3.1 设下列指令中的标识符均为字变量,请指出哪些8086/8088指令是非法的: (9)MOV SI,OFFSET WORD2[BX] 指令二义性? MOV SI, 2[BX] MOV SI, BX+2 ?OFFSET优先级高于+ 该指令合法! 要点3:注意区分字操作和字节操作 (1)访问内存时能够自动调整访问规模(非法,但编译器警告) … DATA1 DB 01H, 02H … MOV AX, DATA1 ;字赋值,高地址-AH,低地址-AL MOV DATA1, AX ;字赋值。 (2) 超范围赋值是不安全的(非法,编译器警告) (3)请使用合成运算符PTR安全地改变访问规模 warning A4031: Operand types must match 伪指令 (1)符号定义 EQU: 定义的是符号名,不能重新定义,常用于定义端口。 EQU可以写在程序的任何位置。 (2)数据定义 DB,DW,DD: 定义的是变量,定义字时要遵循低位低地址,高位高地址的原则。DB/DW/DD只能定义在DATA段中。 (3)段定义 SEGMENT/ENDS ASSUME (4)过程定义 PROG/ENDP (5)模块定义 PUBLIC EXTERN (6)宏处理 MACRO/ENDM (7)其它伪指令… 要点4:区别符号名与变量 PC55 EQU 282H DATA SEGMENT DATA1 DB ? DATA2 DW PC55+1 DATA ENDS … MOV DX,PC55 ;大于等于256时要用DX间址 IN AL,DX LEA AX, PC55 ;错 LEA DATA1+2*2 ;对 常用DOS/BIOS调用 8086有四种中断:NMI、INTR、异常中断、软中断INT。 DOS功能子程序调用(INT 20H~INT 27H) 其中INT 21H称为DOS系统功能调用。 (1)键盘输入并显示(01H号功能调用)

文档评论(0)

lyxbb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档