汇编语言第六章答案.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.1 下面的程序段有错吗?若有,请指出错误。 CRAY PROC PUSH AX ADD AX, BX RET ENDP CRAY 答:程序有错。改正如下: CRAY PROC ADD AX, BX RET CRAY ENDP ;CRAY是过程名,应放在ENDP的前面 6.2 9BH F7H 57H 80H F0A0:00B0H 先PUSH,SP-2 再PUSH,SP-2 POP, SP+2 6.2 题堆栈及SP内容的变化过程 已知堆栈寄存器SS的内容是0F0A0H,堆栈指示器SP的内容是00B0H,先执行两条把8057H和0F79BH分别入栈的PUSH指令,然后执行一条POP指令。试画出示意图说明堆栈及SP内容的变化过程。 答:变化过程如右图所示: 6.3 分析下面的程序,画出堆栈最满时各单元的地址及内容。 ;******************************************** S_SEG SEGMENT AT 1000H ;定义堆栈段 DW 200 DUP (?) ;200*2=190H TOS LABEL WORD S_SEG ENDS ;******************************************** C_SEG SEGMENT ;定义代码段 ASSUME CS: C_SEG, SS: S_SEG START: MOV AX, S_SEG (FLAGS) (AX) T_ADDR 0000 (DS) 1000:0184 :0186 :0188 :018A :018C :018E SP: 0186 6.3 题堆栈最满时各单元的地址及内容 MOV SS, AX MOV SP, OFFSET TOS PUSH DS MOV AX, 0 PUSH AX ┇ PUSH T_ADDR PUSH AX PUSHF ┇ POPF POP AX POP T_ADDR RET ;-------------------------------------------------------------------------- C_SEG ENDS ;代码段结束 ;****************************************** END START ;程序结束 答:堆栈最满时各单元的地址及内容如右图所示: 6.4 分析下面的程序,写出堆栈最满时各单元的地址及内容。 ;******************************************** STACK SEGMENT AT 500H ;定义堆栈段 DW 128 DUP (?) TOS LABEL WORD STACK ENDS ;******************************************** CODE SEGMENT ;定义代码段 MAIN PROC FAR ;主程序部分 ASSUME CS: CODE, SS: STACK START: MOV AX, STACK MOV SS, AX MOV SP, OFFSET TOS PUSH DS SUB AX, AX PUSH AX ;MAIN PART OF PROGRAM GOES HERE MOV AX, 4321H CALL HTOA RET MAIN ENDP ;主程序部分结束 ;-------------------------------------------------------------------- HTOA PROC NEAR ;HTOA子程序 CMP AX, 15 JLE B1 PUSH AX 0500:00EC :00EE :00F0 :00F2 :00F4 :00F6 :00F8 :00FA :00FC :00FE SP: 00EE 返回POP BP地址 0003H 返回POP BP地址 0002H 返回POP BP地址 0001H 主程序返回地址 0000 (DS) 6.4 题堆栈最满时各单元的地址及内容 PUSH BP MOV BP, SP MOV BX, [BP+2] AND BX, 000FH MOV [BP+2], BX POP BP MOV CL, 4 SHR AX, CL CALL HTOA POP BP B1: ADD AL, 30H CMP AL, 3AH JL PRINTIT ADD AL, 7H PRINTIT: MOV DL, AL MOV AH, 2 INT 21H RET HOTA ENDP ;HOTA子程序结束 ;--------------------------------------------------------------------

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档