




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一:1.在DEBUG调试程序下,在A命令下编写程序段完成两个字节BCD码相加。要求第一个BCD码存放在1000H和1001号单元。第二个BCD码存放在2000H和2001号单元。相加结果和存放在2003H、2004H、2005H单元。2用T命令单步执行指令。3观察有关寄存器、存储单元和 FLAGS 的改变。【汇编程序】实验二:设计要求1、在内存缓冲区内存入10个有符号的字节整数(在数据段变量定义时存入),编一程序将其中最大的数找出来存入MAX单元。2、将MAX单元的最大数显示在屏幕上。 【实验步骤】1、 在记事本编辑好程序,保存时以asm做后缀。设计要求1. 程序执行后,首先询问: Whats your name?2/要求用户键入回答,例如输入:lily。2. 再次询问:Which class are you in?3. 要求用户再次键入回答,例如输入:CK09-12。4. 回车换行。5. 显示:Your name is lily,and your class is CK09-12. confirm(y/n)。6. 如果回答y,退出程序;否则,返回1。设计思路1. 程序通过Dos的9号功能调用显示字符串。2. 通过调用Dos的0A号功能显示和接收输入的字符串。3. 单个控制键可通过调用Dos的2号功能来完成。4. 接收单个字符可调用Dos的1号功能来完成。5. 注意接收完字符串后,加入串结束符。程序代码DATA SEGMENT MESG1 DB What is your name ?,0AH,0DH,$MESG2 DB Which class are you in ?,0AH,0DH,$MESG3 DB Your name is:,0AH,0DH,$MESG4 DB and your is:,0AH,0DH, $MESG5 DB confirm(y/n)?,0AH,0DH,$BUF1 DB 30,?,30 DUP(?) BUF2 DB 30,?,30 DUP(?)DATA ENDSSTACK1 SEGMENT PARA STACK DW 20H DUP(0)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1BEG: MOV AX,DATA MOV DS,AXAGAIN: MOV DX,OFFSET MESG1 ;显示“What is your name ? MOV AH,9 INT 21H MOV AH,0AH ;键盘回答自己名字存入BUF1缓冲区 MOV DX,OFFSET BUF1 INT 21H MOV AH,9 ;显示“Which class are you in ? MOV DX,OFFSET MESG2 INT 21H MOV AH,0AH ;键盘回答自己所在的班级存入BUF2缓冲区 MOV DX,OFFSET BUF2 INT 21H MOV AH,09H ;显示“Your name is: MOV DX,OFFSET MESG3 INT 21H MOV BL,BUF1+1 ;给BUF1缓冲区输入的字符末尾加“$”结束符 MOV BH,0 MOV SI,OFFSET BUF1+2 MOV CL,$ MOV BX+SI,CL MOV AH,09H ;显示键盘输入的名字 MOV DX,OFFSET BUF1+2 INT 21H MOV AH,2 ;显示“,” MOV DL, INT 21H MOV AH,09H ;显示“and your is: MOV DX,OFFSET MESG4 INT 21H MOV BL,BUF2+1 ;给BUF2缓冲区输入的字符末尾加“$”结束符 MOV BH,0 MOV SI,OFFSET BUF2+2 MOV CL,$ MOV BX+SI,CL MOV AH,09H ;显示键盘输入的班级 MOV DX,OFFSET BUF2+2 INT 21H MOV AH,2 ;显示换行 MOV DL,0AH INT 21H MOV AH,09H ;显示“Confirm(y/n)?” MOV DX,OFFSET MESG5 INT 21H MOV AH,01H ;键盘输入单字符“y”或“n” INT 21H CMP AL,y JNE AGAIN MOV AH,4CH INT 21HCODE ENDS END BEG 运行结果:实验四:;统计、求和与*排序DATA SEGMENT ORDER DB,10 DUP(?) ;用于存放键入的10个数 BUF DB 5,?,5 DUP(?) ;用于接收键入的一个有符号两位十进制数 SUM DW ? ;用于存放10个数的和 M DB Please input:,0AH,0DH,$ ;提示信息 OPT1 DB The count is:,0AH,0DH,$ ;提示输出负数的个数信息 OPT2 DB Sum is:,0AH,0DH,$ ;提示输出累加和的信息DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATABEG: MOV AX,DATA MOV DS,AX MOV CX,10 ;循环10次输入10个数 MOV BL,0 ;计负数个数单元 MOV SI,OFFSET ORDER ;取存放数据变量地址AG1: MOV DX,OFFSET M ;显示输入信息 MOV AH,9 INT 21H MOV AH,0AH ;接收一个键盘输入的十位有符号数(3个ASC码) MOV DX,OFFSET BUF INT 21H MOV AL,BUF+3 ;两位ASC码数符转换成数值 SUB AL,30H SAL AL,1 MOV AH,AL SAL AL,1 SAL AL,1 ADD AL,AH SUB BUF+4,30H ADD AL,BUF+4 MOV AH,BUF+2 ;取符号判别是正数还是负数 CMP AH,- JNE C1 ;是正数直接送ORDER NEG AL ;是负数求出补码 INC BL ;计负数个数 c1:MOV SI,AL INC SI LOOP AG1 MOV DX,OFFSET OPT1 ;显示输出负数个数提示信息 MOV AH,9 INT 21H MOV AL,BL ;将负数个数送AL CALL SHOW ;显示负数个数 mov dl,0dh mov ah,2 ;换行准备在下一行显示输出和的提示信息 int 21h mov dl,0ah mov ah,2 int 21h ;调用显示子程序显示负数个数 MOV CX,10 ;置累加数个数 MOV dX,0 ;存和单元清0 MOV SI,OFFSET ORDERAG2: mov al,SI cbw ;将AL中的数扩展成16位存在AX中 add dx,ax AG3: INC SI LOOP AG2 MOV SUM,DX ;将和存入SUM变量 MOV DX,OFFSET OPT2 ;显示输出和的信息 MOV AH,9 INT 21H MOV AL,BYTE PTR SUM+1 ;显示累加和的高位字节(两位16进制数) CALL SHOW MOV AL,BYTE PTR SUM ;显示累加和的低位字节 CALL SHOW mov dl,0dh mov ah,2 ;换行准备在下一行显示输出和的提示信息 int 21h mov dl,0ah mov ah,2 int 21h MOV CX,9 ;将十个排序LOOP1:MOV DI,CX MOV BX,0LOOP2:MOV AL,ORDERbx CMP AL,ORDERBX+1 JGE COTINUE XCHG AL,ORDERBX+1 MOV ORDERBX,ALCOTINUE:inc BX LOOP LOOP2 MOV CX,DI LOOP LOOP1 MOV CX,10 MOV SI,OFFSET ORDERAG4: MOV AL,SI PUSH CX CALL SHOW POP CX INC SI LOOP AG4 MOV AH,4CH INT 21HSHOW PROC MOV BL,AL AND AL,0F0H MOV CL,4 SHR AL,CL CMP AL,0AH JB C2 ADD AL,7HC2: ADD AL,30H MOV DL,AL MOV AH,02H INT 21H MOV AL,BL AND AL,0FH CMP AL,0AH JB C3 ADD AL,7HC3: ADD AL,30H MOV DL,AL MOV AH,02H INT 21H RETSHOW ENDPCODE ENDS END BEG实验五:代码转换【设计要求】1 程序执行后,首先给出操作提示: Please input a 4-bit hexadecimal number:2 程序要有保护措施,对于非法键入不受理、不回显,但可重新输入。3 显示合法键入的数据,当收到第4位合法数据后,立即显示转换结果。4显示格式示范如下: ABCDH=43981【汇编程序】DATA SEGMENTMES1 DB Please input a 4-bit hexadecimal number:,0AH,0DH,$MES2 DB Please input a legal num: ,0AH,0DH,$BUF DB 4 DUP (?)N DW 10000,1000,100,10,1DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATABIG: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MES1 ;显示提示信息MES1的内容11 MOV AH,9 INT 21H MOV CX,4MOV DI,OFFSET BUFQ1: MOV AH,07H INT 21HCMP AL,0JB Q4CMP AL,9JA Q3Q2:MOV DL,ALMOV AH,02INT 21H;显示输入的字符MOV DI,ALINC DILOOP Q1JMP Q5Q3:CMP AL,AJB Q4CMP AL,FJA Q4JMP Q2Q4:MOV DX,OFFSET MES2;提示输入非法字符MOV AH,09INT 21HJMP Q1Q5:MOV DL,H;显示H字符MOV AH,02INT 21HMOV DL,=MOV AH,02INT 21HXOR BX,BX;将4位十六进制字符转换成二进制数存于BX MOV CX,4 MOV SI,OFFSET BUFL4: SHL BX,4 LODSB CMP AL,A JB L5 SUB AL,07HL5: SUB AL,30H OR BL,AL LOOP L4MOV SI,OFFSET N;将BX中的二进制字数据转换成十进制数并显示在屏幕上 MOV CX,5L6: LODSW XOR DL,DLL7: SUB BX,AX JC L8 INC DL JMP L7L8: ADD BX,AX MOV AH,02H ADD DL,30H ;将数转换成ASC码 INT 21H LOOP L6 MOV AH,4CH INT 21HCODE ENDS END BIG实验六:MY8255_A EQU 9860HMY8255_B EQU 9861HMY8255_C EQU 9862HMY8255_MODE EQU 9863HDATA SEGMENTLA DB ?LB DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,MY8255_MODE MOV AL,80H OUT DX,AL MOV DX,MY8255_A MOV AL,7FH OUT DX,AL MOV LA,AL MOV DX,MY8255_B MOV AL,0FEH OUT DX,AL MOV LB,AL CALL DALLYA1: MOV AL,LA ROR AL,1 MOV LA,AL MOV DX,MY8255_A OUT DX,A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钢材剪切加工项目可行性研究报告
- 防汛救灾等级课件
- 防汛抢险应急知识培训会课件
- 绿色科技行业工艺流程
- 数字赋能职业教育与就业服务创新-洞察及研究
- 深圳劳动合同样本下载(新版)3篇
- 四川省绵阳市涪城区2025年九年级下学期中考一模数学试卷(含答案)
- 期中专题复习-词汇句型训练-2025-2026学年 译林版2024 英语八年级上册 原卷
- 河南省漯河市实验中学2024-2025学年上学期七年级第一次月考测试英语试卷(含答案无听力原文及音频)
- 三尖瓣狭窄风险预测模型-洞察及研究
- 华中师范大学经济与工商管理学院807经济学基础历年考研真题汇编合集
- 无人机培训公司合同范本
- 2024年水域救援安全及基础理论知识考试题库(附含答案)
- 2024年安徽马鞍山市公安局辅警招聘笔试参考题库附带答案详解
- 2024电工(三级)职业技能等级认定理论考试复习题库(含答案)
- 室内高尔夫行业分析
- 《农业保险承保理赔电子化作业规范》
- 常见呼吸道传染病课件
- 《影视艺术鉴赏》课件
- 《财政与金融》教学教案
- 服装立体裁剪课件
评论
0/150
提交评论