中山大学微机原理、汇编语言与接口技术课件04习题答案.doc

中山大学微机原理、汇编语言与接口技术课件04习题答案.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 汇编语言程序设计 习题与参考答案 1、指出以下数据定义伪指令所分配的字节数(8086系统)。 (1)DATA1 DB 10,?,‘A’ (2)DATA2 DW 10 DUP(2,3 DUP(?),1) (3)DATA3 DB ‘HELLO,WORLD!’,‘$’ (4)DATA4 DW DATA4 解:(1)3字节; (2)100字节; (3)13字节; (4)2字节。 2、指出以下数据定义伪指令所分配的字节数(80386系统)。 (1)DATA1 DF 12,34,56 (2)DATA2 DF DATA2 (3)DATA3 DQ 0,10 DUP(?) (4)DATA4 DT 0,1,2 解:(1)18字节; (3)6字节; (3)88字节; (4)30字节。 3、指出以下指令中哪些是无效的,并说明原因。 (1)ADDR DB $ (2)DATA DB F0H,12H (3)1_DATA DW 1234H (4)@VAR DW VAR1 ;VAR1为一个字节变量 (5)MOV AX,[10-VAR1] ;VAR1为一个字变量 (6)MOV BX,[VAR2*2+1] ;VAR2为一个字变量 解: (1)非法,地址计数器$是32位数; (2)非法,以字母开头的16进制数应在前面加“0”,即应为“0F0H”; (3)非法,变量名非法,不能以数字开头; (4)合法; (5)非法,地址表达式不能是“常数-地址”; (6)非法,地址表达式不能出现乘法。 4、假设已定义数据段如下: DATA SEGMENT ORG 100H DATA1 DB 10 DUP(1,2,3) DATA2 DW DATA1,$ DATA ENDS 且段寄存器DS已初始化为该数据段的段基址(假设段基址为1234H)。请指出以下指令执行后,相应的寄存器中的内容。 (1)MOV AX,WORD PTR DATA1 ;(AX)=? (2)MOV BX,DATA2 ;(BX)=? (3)MOV CX,DATA2+2 ;(CX)=? (4)MOV DX,OFFSET DATA2 ;(DX)=? (5)MOV SI,SEG DATA1 ;(SI)=? (6)MOV DI,LENGTH DATA1 ;(DI)=? (7)MOV SP,TYPE DATA1 ;(SP)=? (8)MOV BP,SIZE DATA2 ;(BP)=? 解: (1)(AX)=0201H; (2)(BX)=0100H; (3)(CX)=0120H; (4)(DX)=011EH; (5)(SI)=1234H; (6)(DI)=000AH; (7)(SP)=0001H; (8)(BP)=0002H。 5、在8086系统下,编写完整程序,实现从键盘上输入8位二进制数,从显示器上显示相应的16进制数,例如从键盘上输入,应在显示器上显示“12H”。 解:参考程序: DATA SEGMENT MSG1 DB 'Input binary number(ESC to exit):','$' MSG2 DB 0AH,0DH,'Input error!',0AH,0DH,'$' DATA ENDS OUTPUT MACRO ASC ;定义输出一个字符的宏 MOV DL, ASC MOV AH, 2 INT 21H ENDM CODE SEGMENT ASSUME CS:CODE, DS:DATA MAIN PROC FAR PUSH DS MOV AX, 0 PUSH AX MOV AX, DATA MOV DS, AX AGAIN: LEA DX, MSG1 MOV AH, 9 INT 21H ;提示输入信息 MOV CX, 8 ;输入8位二进制数 MOV BL, 0 L: MOV AH, 1 INT 21H SHL BL, 1 CMP AL, 1BH ;ESC键退出 JZ DONE CMP AL, '0' ;输入“0” JZ NEXT CMP AL, '1' ;输入“1” JNZ ERROR ;输入其他则出错 INC BL NEXT: LOOP L OUTPUT 0AH OUTPUT 0DH PUSH BX MOV CL, 4 SHR BL, CL CALL TRAN ;显示高4位对应的16进制数 POP BX AND BL, 0FH CALL TRAN ;显示低4位对应的16进制数 OUTPUT 'H' OUTPUT 0AH OUTPUT 0DH JMP AGAIN ERROR: LEA DX, MSG2 MOV AH, 9 INT 21H JMP

您可能关注的文档

文档评论(0)

jz6501 + 关注
内容提供者

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

1亿VIP精品文档

相关文档