资源预览内容
第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
第9页 / 共22页
第10页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
,实验一:汇编语言语法练习与代码转换 时间:周四 地点:1418 类型:验证,一、实验目的: 学习掌握汇编语言语法格式,汇编源程序的基本结构,掌握分支、循环、子程序等基本结构程序的设计方法。 二、实验内容 1. 修改一个有语法错误的汇编语言源程序。 2. 设计汇编程序实现数据的查找、统计,代码转换及屏幕显示等功能。 三、实验要求 1. 掌握汇编语言语法格式以及汇编程序的编辑、汇编、链接和执行的开发全过程。 2. 掌握汇编语言分支,循环程序的设计。 四、实验报告要求 实验报告的内容:实验名称、实验目的、实验内容、实验程序、实验结果分析、实验过程遇到的问题及体会。实验报告以文本形式递交,要求书写规范、文字简练、语句通顺、图表清晰。,;FILENAME:EXA1.asm .486 DATA SEGMENT USE16 SUM DB ?,?, MESG DB 25+9= DB 0,0,$ N1 DW 9,F0H N2 DB ? DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE, DS:DATA BEG: MOV AX,SEG DATA MOV DS,AX MOV BX,OFFSET SUM MOV AH,N1 MOV AL,N2 ADD AH,AL MOV BX,AH CALL CHANG MOV AH,9 MOV DX,OFFSET MESG INT 21H MOV AH,4CH INT 21H CHANG PROC LAST: CMP BX,10 JC NEXT SUB BX,10 INC BX+7 JMP LAST NEXT: ADD BX+8,SUM MOV DL,30H ADD BX+7,DL ADD BX+8,DL RET CHANG ENDP CODE ENDS END BEG,实验二:用户登录验证程序 时间:周四 地点:1416 类型:设计,一、实验目的: 学习掌握汇编语言的开发过程,汇编源程序的编程格式和基本结构,DOS/BIOS功能调用,掌握分支、循环、子程序等基本结构程序的设计方法。 二、实验内容 用汇编语言程序设计方法,设计一个用户登陆验证程序。 三、实验要求 1. 程序执行后,给出操作提示,请用户键入用户名和密码。 2. 用户在键入密码时,程序不回显键入字符。 3. 只有当用户键入的用户和密码字符串和程序内定的字符串相同时,显示欢迎界面,并返回DOS。 四、实验报告要求 实验报告的内容:实验名称、实验目的、实验内容、实验程序、实验结果分析、实验过程遇到的问题及体会。 实验报告以文本形式递交,要求书写规范、文字简练、语句通顺、图表清晰。,实验二:用户登录验证程序 要求: TOM * 功能要求: 先输出登陆用户名称,并回车,然后由用户输入4位密码,但是密码不能显示出来。判断输入的密码与预先设定的密码是否相同,习题: 1 . 数制和码制转换 (1)(11101.1011)2=( 29.6875 )10 (2) (147)10=( 10010011 )2=( 93 )16 (3) (3AC)16=( 940 )10 (4) (1001,0110)BCD=( 1100000 )2 (5) 字长=8,1补=( FF )16 X补=(A5)16,则X=( -5B )16,(6) 设字长=8位,X=(8E)16,当X分别为原码、补码、 反码和无符号数的时候,其真值=()16 X分别为原码 真值=( -E )16 X分别为补码 真值=( -72 )16 X分别为反码 真值=( -71 )16 X分别为无符号数 真值=( 8E )16,(7)字长=8,用补码形式完成下列十进制数运算。要求有运算过程并讨论结果是否有溢出? (A)(+75) +(6) (B)(35)+(75) (C)(85)(15) (D)(+120)+(+18) XY补X补Y补 XY补X补 Y补 步骤: 1)X - X补, Y - Y补 2)进行 X补+Y补 运算 3)根据X+Y补,计算出X+Y 4)判断溢出的条件:无符号数,根据CF判断; 有符号数,根据OF判断,(A)(+75)+(6),X补= 01001011 Y补= 11111010, X+Y=(+1000101)2 = (+69)10 OF=0,无溢出,X+Y补=101000101,解:X=(+75)10= (+1001011)2,X补=(01001011)2 Y=(-6)10 = (- 110)2, Y补=(11111010)2,有同学直接写成 (-6)10=(10000110)2 ,(B)(35)+(75),X补= 11011101 Y补= 10110101, X+Y=(-1101110)2 = (-110)10 OF=0,无溢出,X+Y补=110010010,解:X=(-35)10= (- 100011)2,X补=(11011101)2 Y=(-75)10= (-1001011)2, Y补=(10110101)2,(C)(85)(15),X补= 10101011 Y补= 00001111, X+Y=(-1000110)2 = (-70)10 OF=0,无溢出,X+Y补=010111010,解:X=(-85)10= (-1010101)2,X补=(10101011)2 Y=(+15)10= (+ 1111)2, Y补=(00001111)2,(D)(+120)+(+18),X补= 01111000 Y补= 00010010, X+Y=(-1110110)2 = (-118)10 OF=1,溢出,X+Y补=010001010,解:X=(+120)10= (+1111000)2,X补=(01111000)2 Y=(+18)10= (+ 10010)2, Y补=(00010010)2,有同学直接写:因为120+18=138127,所以溢出。不符合题意,1. (1) 1234H:5678H - 179B8H (2) 2F34H:2F6H 即2F34H:02F6H-2F636H (3) 576AH:1024H - 586C4H (4) 2FD0H:100H 即 2FD0H:0100H -2FE00H 容易出错: 16进制加法, 逻辑地址长度(16位),2.写出目标操作数、源操作数的寻址方式,改正非法内存操作数,写出CPU寻址的逻辑段 目标操作数寻址方式 源操作数寻址方式 CPU寻址的逻辑段 (1) 寄存器寻址 立即数寻址 (2) 间接寻址 立即数寻址 数据段 CMP BYTE PTR BX, 100 (3) 间接寻址 立即数寻址 数据段 ADD WORD PTR SI, 1000 (4) 寄存器寻址 寄存器寻址 (5) 寄存器寻址 基址寻址 堆栈段 (6) 寄存器寻址 基址+变址寻址 数据段,3. (1) CF23H+C678H=959BH 1100111100100011 + 1100011001111000 - (1)1001010110011011 A=0,C=1,O=0,P=0,S=1,Z=0 容易出错:CPU判溢(应使用公式计算),(2) 6398H+C678H=2A10H 0110001110011000 + 1100011001111000 - (1)0010101000010000 A=1,C=1,O=0,P=0,S=0,Z=0,(3) 94FBH+C678H=5B73H 1001010011111011 + 1100011001111000 - (1)0101101101110011 A=1,C=1,O=1,P=0,S=0,Z=0,(4) 65E2H+C678H=2C5AH 0110010111100010 + 1100011001111000 - (1)0010110001011010 A=0,C=1,O=0,P=1,S=0,Z=0,4分别用一条指令完成: (1)AH高四位置1,低四位不变 OR AH, 0F0H AH高四位取反,低四位不变 XOR AH, 0F0H (2)BH高4位取反,低4位不变, BL高4位不变,低4位取反 XOR BX, 0F00FH (3) CX低4位清0,其他位不变 AND CX, 0FFF0H,5FIRST DB 12H, 34H SECOND DB 56H, 78H (1)采用传送指令编写程序 MOV AX, WORD PTR FIRST MOV BX, WORD PTR SECOND MOV WORD PTR FIRST, BX MOV WORD PTR SECOND, AX MOV AL, FIRST MOV AH, SECOND MOV FIRST, AH MOV SECOND, AL MOV AL, FIRST+1 MOV AH, SECOND+1 MOV FIRST+1, AH MOV SECOND+1, AL MOV AX, WORD PTR FIRST XCHG AX, WORD PTR SECOND MOV WORD PTR FIRST, AX,解法1,解法2,解法3,错误的代码 MOV AL, FIRST MOV BL, SECOND XCHG AL, BL MOV AL, FIRST+1 MOV BL, SECOND+1 XCHG AL, BL MOV AH, FIRST MOV FIRST, SECOND MOV SECOND, AH MOV AH, FIRST+1 MOV FIRST+1, SECOND+1 MOV SECOND+1, AH,(2)采用堆栈指令编写 PUSH WORD PTR FIRST PUSH WORD PTR SECOND POP WORD PTR FIRST POP WORD PTR SECOND,SS=2000H,SP=3454H,第2条指令执行后,SS=2000H,SP=3452H,SS=2000H,SP=3456H,第1条指令执行后,第3条指令执行后,第4条指令执行后,SS=2000H,SP=3454H,6.TABLE DW 158,258,358,458 ;9EH,102H,166H,1CAH ENTRY DW 3 MOV BX, OFFSET TABLE MOV SI, ENTRY MOV AX, BX + SI AX=6601H,9EH 00H 02H 01H 66H 01H CAH 01H,TABLE,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号