ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:43.63KB ,
资源ID:12572781      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12572781.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编实验1.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编实验1.docx

1、汇编实验1实验一顺序与分支程序设计一 、实验目的 1)掌握顺序程序设计方法。2)掌握分支程序的结构与分支程序的设计,调试方法。2) 学习数据传送与算术和逻辑运算指令的用法。3) 熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程。二、实验容1) 有一字变量BUF1是以原码表示的有符号数,要求将其转换为反码和补码,分别存入BUF2和BUF3单元,并在屏幕上显示出来。2)有两个两字节无符号数分别放在存储单元A、B起始的缓冲器中,求其和,结果放在A起始的缓冲区并在屏幕上显示。相加若有进位不存入存储单元。 3) 在BUF和BUF+1、BUF+2单元分别放有一个无符号字节型数,编程序将其中最大

2、数存入MAX单元,并在屏幕上显示。 4) 要求同上,只是比较的数为有符号数。5) 将1000H单元开始的10个字节数,采用奇偶校验,将奇数在前偶数在后仍存回原数据区。本实验要求在DEBUG调试状态下进行,包括汇编程序、运行程序、检查结果。6) 从键盘上接收一位十进制数X,计算Y值,并以十六进制形式显示出来,Y按以下公式计算。7) 从键盘上接收两个一位十六进制数X和Y,然后再输入一个A-D之间的一个字符,按以下要求计算。a)当输入字符为A,则计算X+Y,并以十六进制形式显示出来b)当输入字符为B,则计算|X-Y|,并以十六进制形式显示出来c)当输入字符为C,则计算X*Y,并以十六进制形式显示出来

3、d)当输入字符为D,则计算X/Y,并以十六进制形式显示出来三、实验设备PC机一台四、实验准备1) 分析题目,将程序中的原始数据和最终结果的存取方法确定好。2) 画出流程图。3) 写出源程序。4) 对程序中的结果进行分析,并准备好上机调试与用汇编程序与汇编调试的过程。五、实验步骤1) 输入源程序。2) 汇编、连接程序,生成 .EXE文件,执行文件,检查结果。六、实验报告的要求1) 列出源程序,说明程序的基本结构,包括程序中各部分的功能。2) 说明程序中各部分所用的算法。3)说明主要符号和所用到寄存器的功能。 4) 总结为什么在设计分支程序时必须解决三个问题:判断、转向和定标号。5) 说明标志位C

4、F、SF和OF的意义。6) 上机调试过程中遇到的问题是如何解决的。 7) 对调试源程序的结果进行分析。实验1-1 源程序:DATA SEGMENT BUF1 DW 932AH ;(以十六进制表示一个数的原码,包括符号位) BUF2 DW ? BUF3 DW ?DATA ENDSSTACK1 SEGMENT PARA STACK DW 20H DUP(0)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1,ES:DATASTART: MOV AX,DATA MOV DS,AX MOV AX,BUF1 MOV BX,AX AND AX,

5、0FFFFH JNS L ;sf表示符号标志位,若最高位大于7时,则为负,该命令判断是否为负,为负则求反(加一),为正则原样输出 NEG AX XOR BX,0FFFFH OR AX,8000H ;保持符号位不变 OR BX,8000H L:MOV BUF2,BX MOV BUF3,AX PUSH AX PUSH BX MOV CX,2LOP:POP BX;将结果每一位通过循环移位显示在屏幕上 PUSH CX MOV CX,4 LP:PUSH CX MOV CL,4 ROL BX,CL MOV DL,BL AND DL,0FH CMP DL,0AH L2 ADD DL,07H L2:ADD D

6、L,30H MOV AH,02H INT 21H POP CX LOOP LP MOV DL, INT 21H POP CX LOOP LOP MOV AH,4CH INT 21HCODE ENDSEND START运行结果: 屏幕上显示的是BUF1数的反码和补码(十六进制,包括符号位)。 调试时发现结果显示成乱码,经过研究程序代码发现如果数字在A到F之间,则需要将存数值加37。实验1-2源程序:data segment A dw 00ED1h B dw 0BDE9h data endsstack1 segment para stack dw 20h dup(0)stack1 endscode

7、 segment assume cs:code,ds:data,ss:stack1,es:datastart: MOV AX,DATA MOV DS,AX MOV BX,A ;(把A存储的单元放入BX寄存器中) MOV AX,B;(把B存储的单元放入AX寄存器中) ADD BX,AX JC L0;cf是无符号的进位,当两数相加大于0ffffh,产生进位 MOV A,BX L0:MOV DX,BX;显示相加结果 AND DX,0F000H MOV CL,12 SHR DX,CL CMP DX,0AH L1 ADD DX,7H L1:ADD DX,30H MOV AH,02H INT 21H MO

8、V DX,BX AND DX,0F00H MOV CL,8 SHR DX,CL CMP DX,0AH L2 ADD DX,7H L2:ADD DX,30H MOV AH,02H INT 21H MOV DX,BX AND DX,0F0H MOV CL,4 SHR DX,CL CMP DX,0AH L3 ADD DX,7H L3:ADD DX,30H MOV AH,02H INT 21H MOV DX,BX AND DX,0FH CMP DX,0AH L4 ADD DX,7H L4:ADD DX,30H MOV AH,02H INT 21H mov ah,4ch int 21hcode ends

9、end start运行结果:实验1-3源代码:data segment BUF DB 03EH,060H,93H MAX DB 00Hdata endsstack1 segment para stack dw 20h dup(0)stack1 endscode segment assume cs:code,ds:data,ss:stack1,es:dataSTART: MOV AX,DATA MOV DS,AX AND AX,0000H MOV AL,BUF MOV MAX,AL MOV BL,BUF+1 CMP MAX,BL;找到最大的数 JAE L1 MOV MAX,BL L1:MOV B

10、L,BUF+2 CMP MAX,BL JAE L2;显示最大的数 MOV MAX,BL L2:AND DX,0000H MOV DL,MAX AND DL,0F0H MOV CL,4 SHR DL,CL CMP DL,0AH L3 ADD DL,7H L3:ADD DL,30H MOV AH,02H INT 21H MOV DL,MAX AND DL,0FH CMP DL,0AH L4 ADD DL,7H L4:ADD DL,30H MOV AH,02H INT 21H MOV AH,4CH INT 21HCODE ENDSEND START运行结果:实验1-4源代码:data segment

11、 BUF DB -34H,3AH,-43H;转换成补码 MAX DB 00Hdata endsstack1 segment para stack dw 20h dup(0)stack1 endscode segment assume cs:code,ds:data,ss:stack1,es:dataSTART: MOV AX,DATA MOV DS,AX AND AX,0000H MOV AL,BUF;通过对所有的数取阶码比较大小 ADD AL,80H MOV MAX,AL MOV BL,BUF+1 ADD BL,80H CMP MAX,BL JAE L1 MOV MAX,BL L1:MOV

12、BL,BUF+2 ADD BL,80H CMP MAX,BL JAE L2 MOV MAX,BL L2:AND DX,0000H MOV DL,MAX SUB DL,80H;包含有cmp功能,对最大的数减去80h(取回原码) JAE L3 MOV BL,DL MOV DL,-;如果是负数显示符号 MOV AH,02H INT 21H MOV DL,BL NEG DL;求补(针对带符号数) L3:MOV BL,DL;显示最大的数 AND DL,0F0H MOV CL,4 SHR DL,CL ADD DL,30H MOV AH,02H INT 21H MOV DL,BL AND DL,0FH CM

13、P DL,0AH L4 ADD DL,7H L4:ADD DL,30H MOV AH,02H INT 21H MOV AH,4CH INT 21HCODE ENDSEND START运行结果:实验1-5源程序:DATA SEGMENT BUF DB 10 DUP(0) BF DB 00011110B,11111111B,6 DUP(0),00110000B,00000001BDATA ENDSSTACK1 SEGMENT PARA STACK DW 20H DUP(0)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1START:

14、MOV AX,DATA MOV DS,AX MOV AX,100H MOV ES,AX MOV CX,10 MOV DI,0 MOV SI,9LOP:MOV BX,CX ;MOV AL,BF+BX-1 MOV AL,ES:-1BX AND AL,0FFH;mov不影响标志位 JP L1 ;pf为奇偶标志位,当位数为偶数时为1 LEA BX,BUF ADD BX,DI MOV BX,AL INC DI JMP L2 L1:MOV BUF+SI,AL DEC SI L2:LOOP LOP MOV CX,10 LP:MOV BX,CX MOV AL,BUF+BX-1 MOV ES:-1BX,AL L

15、OOP LP MOV AH,4CH INT 21HCODE ENDSEND START运行结果:1、对bf进行检验,再存入buf2、对指定的存单元进行检验,存回指定的存单元实验1-6源程序:DATA SEGMENT TABLE DW L3,L4,L5,L6;偏移地址是以字为单位的DATA ENDSSTACK1 SEGMENT PARA STACK DW 20H DUP(0)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1,ES:DATASTART: MOV AX,DATA MOV DS,AX MOV AH,01H INT 21H

16、SUB AL,30H CMP AL,3 L9 CMP AL,6 JA L9 AND AH,00H MOV DL,AL LEA BX,TABLE SUB DL,3 SHL DL,1 MOV DI,DX; MOV DL,AL MUL DL JMP BX+DI L3:ADD AL,DL JMP L1 L4:SHL DL,1 SUB AL,DL JMP L1 L5:JMP L1 L6:SHR AL,1 JMP L1 L1:MOV BX,AX MOV DX,BX MOV CL,4 SHR DL,CL CMP DL,0AH L7 ADD DL,7H L7:ADD DL,30H MOV AH,02H INT

17、 21H MOV DL,BL AND DL,0FH CMP DL,0AH L8 ADD DL,7H L8:ADD DL,30H MOV AH,02H INT 21H L9:MOV AH,4CH INT 21HCODE ENDSEND START结果:实验1-7源程序:DATA SEGMENT TABLE DW LA,LB,LC,LDDATA ENDSSTACK1 SEGMENT PARA STACK DW 20H DUP(0)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1,ES:DATASTART: MOV AX,DATA MO

18、V DS,AX MOV CX,02HLOP:MOV AH,01H INT 21H CMP AL,30H PEND CMP AL,39H JA NEXT SUB AL,30H JMP L1NEXT:CMP AL,41H PEND CMP AL,46H JA PEND SUB AL,40H ADD AL,09H L1:AND AX,00FFH PUSH AX LOOP LOP MOV AH,01H INT 21H CMP AL,41H PEND CMP AL,44H JA PEND SUB AL,41H SHL AL,1 MOV BX,OFFSET TABLE ADD BL,AL JMP BX L

19、A:POP AX POP BX ADD AX,BX JMP L0 LB:POP AX POP BX SUB AX,BX JAE L2 NEG AX L2:JMP L0 LC:POP AX POP BX MUL BL JMP L0 LD:POP BX POP AX DIV BL JMP L0 L0:MOV CX,2 MOV BX,AXLOP2:PUSH CX MOV CL,4 ROL BL,CL MOV DL,BL AND DL,0FH CMP DL,0AH L5 ADD DL,07H L5:ADD DL,30H MOV AH,02H INT 21H POP CX LOOP LOP2 PEND:MOV AH,4CH INT 21HCODE ENDSEND START结果:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1