西安电子科技大学微机原理大作业

上传人:w****4 文档编号:58983775 上传时间:2022-03-01 格式:DOCX 页数:52 大小:339.39KB
收藏 版权申诉 举报 下载
西安电子科技大学微机原理大作业_第1页
第1页 / 共52页
西安电子科技大学微机原理大作业_第2页
第2页 / 共52页
西安电子科技大学微机原理大作业_第3页
第3页 / 共52页
资源描述:

《西安电子科技大学微机原理大作业》由会员分享,可在线阅读,更多相关《西安电子科技大学微机原理大作业(52页珍藏版)》请在装配图网上搜索。

1、西安电子科技大学微机原理大 作业第一次上机一、实验目的1. 熟练掌握8086/8088的各种寻址方式及应 用。2. 掌握DEBUGS试程序中的一些常用命令的使 用方法,为以后的实验打下基础二、实验仪器586微机1台三、实验内容1 关于数据的寻址方式练习8086/8088提供多种方式实现操作数寻址,大体 可分为7种:a. 立即寻址b. 寄存器寻址c. 直接寻址d. 寄存器间接寻址e. 寄存器相对寻址f. 基址变址寻址g. 基址变址且相对寻址掌握8086/8088的这些寻址方式,是学习汇编语 言编程的关键。指令SRC寻址方式SRC 的地 址AX推 算 值AX实 际 值MOV AX, CX寄存器寻址

2、00050005MOV AX, 500H立即寻址05000500MOV AX, TABLE直接寻址1541 :000 4A5A4A5A4MOV AX, ES:BX寄存器间 接寻址1542 :000 4C5C4C5C4MOV AX, BX+05H寄存器相 对寻址1541 :000 9AAA9AAA9MOV AX,寄存器相153FB8BB8BSS:BX+03H对寻址:000777MOV AX, TABLE寄存器相1541A9AA9ABX对寻址:000888MOV AX, 07H寄存器相1541ACAACABX对寻址:000BBBMOV AX, BP寄存器间153FB4BB4B接寻址:000333M

3、OV AX, TABLE寄存器相1541A8AA8ABP对寻址:000777MOV AX, 08H寄存器相153FBCBBCBBP对寻址:000BBBMOV AX,寄存器相153FBABBABBP+06H对寻址:000999MOV AX,寄存器相1541A7AA7ADS:BP+03H对寻址:000666MOV AX,寄存器相153FB9BB9BBP+05H对寻址:000888MOV AX, ES:寄存器相1542C6CC6CSI+03H对寻址:000555MOV AX,寄存器相1541A8AA8ADI+06H对寻址:000777MOV AX,寄存器相1541A7AA7ADI+05H对寻址:00

4、0666MOV AX, TABLE寄存器相1541A7AA7ASI对寻址:000666MOV AX, SI寄存器间1541A3AA3A接寻址:000222MOV AX, TABLE寄存器相1541A6AA6ADI对寻址:000555MOV AX,寄存器相1541A8AA8ASI+05H对寻址:000777MOV AX, BX基址变址1541A7AA7ADI+01H且相对寻址:000666MOV AX, BX基址变址1541AAAAAASI+03H且相对寻址:000999MOV AX, TABLE基址变址1541ABAABABX SI且相对寻址:000AAAMOV AX,基址变址1542C6CC

5、6CES:BX DI寻址:000555MOV AX, BP基址变址153FB7BB7BDI+02H且相对寻址:000666MOV AX, TABLE基址变址1541A9AA9ABP DI且相对寻址:000888MOV AX,基址变址1542C6CC6CES:BP SI寻址:000555MOV AX, BP基址变址153FBBBBBBSI+05H且相对寻址:000AAAMOV AX, 03H基址变址153FB8BB8BBP DI且相对寻址:000777MOV AX, BP基址变址153FB6BB6BSI寻址:000555MOV AX,基址变址153FBABBABBP+02H DI+03H且相对寻

6、址:000999MOV AX, TABLE基址变址1541AEAAEABP+02H DI+03H且相对寻址:000DDD第二次上机,、实验目的1熟练掌握汇编语言程序设计的方法及上机步骤。2.掌握算术运算中,十进制数调整指令的应用。3.掌握子程序的设计方法。4.掌握DOS功能的调用方法。一、实验仪器586微机1台二、实验内容1.编写求十进制数02121424与21736543之和的程序,并将和以十进制数的形式送屏幕显示。STACK SEGMENTADD2 DDSTACK STACK21736543HDW 100HSUM DD ?DUPDATA ENDSSTACK ENDSCODE SEGMENT

7、DATA SEGMENTASSUMEDDCS:CODE,DS:DATA,ES:DATA,SS:STACKADD102121424HSTART: MOV AX,DATAMOV DS,AXMOV ES,AXADCAL,DI+2MOVDAAAX,STACKMOV SS,AXMOVBX+2,ALLEA SI,ADD1MOVAL,SI+3LEA DI,ADD2LEA BX,SUMADCAL,DI+3MOV AL,SIDAAADD AL,DIDAAMOV BX+3,ALMOV BX,ALMOV DL,00MOVAL,SI+1ADC DL,00ADCAL,DI+1CALLDISPSUMMOV AH,4CHD

8、AAINT 21HMOVBX+1,ALDISPSUM PROC NEARPUSH AXMOVAL,SI+2PUSH BXPUSH CXPUSH SIMOV SI ,4PUSH DXMOV CX,5LAB: PUSH CXPUSH BXMOV AL,DLMOV BL,DLMOV CL,4SHR AL,CLADD AL,30HMOV AH,02MOV DL,ALINT 21HAND BL,0FHADD BL,30HMOV AH,02MOV DL,BLINT 21HPOP BXPOP CXDEC SIMOVDL,BXSILOOP LABPOP DXPOP SIPOP CXPOP BXPOP AXRE

9、TDISPSUM ENDPCODE ENDSEND START0B 旨1 员:CAWi n dowAsystemmdnexe1=10 S3 |2.有一个首地址为A的N字数组,请编程序使 该数组中的数按从大到小的次序排列。STACK SEGMENTSTACKDB 256DUPSTACK ENDSDATA SEGMENTDATA1 DW 7800H,6832H,0000H, 87H,1275H,0EC34HSTRING1 DB inp ut number:,0DH,0AH, $STRING2 DB The nu mbers from large to small is:,0DH,0AH,$DATA

10、 ENDSCODE SEGMENTMOV CX,5LEASI,DATA1ADD SI,10LP1: PUSH CXPUSH SILP2: MOV AX,SICMPAX,SI-2JBE NOXCHGXCHGAX,SI-2MOV SI,AXNOXCHG: DEC SIDEC SILOOP LP2POP SIPOP CXLOOP LP1ASSUMECS:CODE,DS:D ATA,ES:DATA,SS:STA CKSTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOVAX,STACKMOV SS,AXLEADX,STRING1MOV AH,09HINT 21HMOV CX,6

11、LEASI,DATA1L1:MOV AX,SIADD SI,2CALL DISPAXCALL DISPCRLOOP L1LEADX,STRING2MOV AH,09HINT 21HMOV CX,6LEASI,DATA1L2:MOV AX,SIADD SI,2CALL DISPAXCALL DISPCRLOOP L2MOV AH,4CHINT 21HDISPAL PROCPUSH AXPUSH CXPUSH DXPUSH AXMOV CL,4SHR AL,CLCALL CHANGMOV AH,02HMOV DL,ALINT 21HPOP AXAND AX,0FHCALL CHANGMOV AH,

12、02HMOV DL,ALINT 21HPOP DXPOP CXPOP AXRETDISPAL ENDPCHANG PROCCMP AL,10JNGE CHANG1ADD AL,7PUSH DXCHANG1: ADD AL,30HMOV AH,2RETMOV DL,0AHCHANG ENDPINT 21HDISPAX PROCMOV AH,2XCHG AL,AHMOV DL,0DHCALL DISPALINT 21HXCHG AH,ALPOP DXCALL DISPALPOP AXRETRETDISPAX ENDPDISPCR ENDPDISPCR PROCCODE ENDSPUSH AXEND

13、 STARTSI 言堆豆:匚 AindohV&i.systeTn 32:nnd exeMlicrosol t Linker Uerslon 3 .bUCopyright Nicrosoft Corp 1983-1987. All rights reserved.OJbjcG t Hodulcs t _ODJ1: PH02 . OAJ Fun File FW.EXEl:List File EMIL.MAPI:Libraries .L1R1:E;PBO2.EXE input: nunber : 739B680 QWB871275EC34I he n umbera f Ton laife to sh

14、aII ds JEC34TSflB翎眈127E6687UtitiUE=第三、四次上机一、实验目的1. 增强和提高汇编语言程序设计的能力,掌握模 块化程序设计的方法2. 熟练掌握DOS常用功能的调用方法二、实验仪器586微机一台三、实验内容编写如下程序,并在机器上调试成功。程序米用 菜单式选择,可以接收用户从键盘输入的四个命 令(1-4),各命令功能分别为:(1) 按下“1”键,完成字符串小写字母变成大 写字母。(2) 按下“ 2”键,完成找最大值(3) 按下“3”键,完成排序(4) 按下“4”键,显示时间(5) 按下“5”键,结束程序运行,返回系统提 示符。;宏定义显示字符串DISPL MAC

15、ROTR;Fu nction to displaystri ngsPUSH DXPUSH AXLEA DX,STRMOV AH,09HINT 21HPOP AXPOP DXENDM判断用户是否选择继续ISCONTINUE MACRO L ;Macro to judge whether to con ti nue, L is a markDISPS 15,10,SMENUMOV AH,08HINT 21HCMP AL,1BHJNE L ;若用JE会导致编译,跳不了那么远JMP MAINENDM设置光标宏CURSOR MACRO CURX,CUR YPUSH AXPUSH BXPUSH DX ;D

16、X必须保护,始终指向输入缓冲区MOV AH,02HMOV DH,CURXMOV DL,CUR YMOV BH,0INT 10HPOP DXPOP BXPOP AXENDM定位字符串显示宏DISPS MACRO X,Y,STR将STR的内容显示到X,Y的位置PUSH AXPUSH BXPUSH DX显示页码,第0页 行( X坐标) 列(Y坐标)MOV AH,02HMOV BH,00HMOV DH,X ;MOV DL, Y ;INT 10HLEA DX,STRMOV AH,09HINT 21HPOP DXPOP BXPOP AXENDM清屏加色宏SCROLL MACRO N,ULR,ULC,LRR

17、,LRC,ATTPUSH AXPUSH BXPUSH CXPUSH DXMOV AH,06HMOV AL,N;N=窗口上卷行数;N=0时,清MOV CH,ULR;左上角行号(X)MOV CL,ULC;左上角列号(Y)MOV DH,LRR;右下角行号MOV DL,LRC;右下角列号MOV BH,ATT;卷入行属性,颜色设置INT 10HPOP DXPOP exPOP BXPOP AXENDMJ; 子程序预处理宏PREP MACRO T;预处理,显示子菜单标题(T),输入提示信息等LEA SI,INBUF+1LEA DI,OUTBUFSCROLL 21,2,0,22,79,0FH ;清屏,内窗DI

18、SPS 3,20,T;显示子菜单标题(3行20列显示T)DISPS 6,2,CAPION ;Prompt for astri ng to cha ngeDISPS 8,2,INCAP;Print Y ourinput is:MOV AH,0AHINT 21HMOV CH,0MOV CL,SI ;获取输入字符串中,字符的个数INC SIENDM 堆栈段STACK SEGMENT STACK STACKDB 100H DUPTOP LABEL WORDSTACK ENDS 数据段DATA SEGMENTBASE DWMAIN,LTC,FMV,SORTS,STM,EXIT ;建立跳转表WELCM D

19、B Welcome to use this program!$MMENUI DB-THIS PROGRAM DEVELOPEBYZHOUPENGFEI!-$MMENUD DB - 2014/11/16-$MMENUC DB Please Chose An Item,A nd In put The Number!$MMENU1 DB 1 -Lowercase Letters To Capital Letters$MMENU2 DBValue$MMENU3 DBMMENU4 DBMMENU5 DB2 -Fi nd The Maximum3 -Sort$4 -Set Time$5 -Exit!$SM

20、ENU DB 卩 ress Any Key To Redo,Press ESC To Retur n To Main Men u!$WROCAP DWRONGYou have press key! Please in put a n umber betwee n 1 and 5!$CAPION DB 卩 lease In put Y our Stri ngs andEnd With Enter Key!$INCAP DB Y our In put Is: $INBUF DB 100DB ?DB 100 DUPOUTCAP DB My Output Is: $OUTBUF DB 100 DUPM

21、AXCAP DB The char of max ASCIIis: .$ERRINF DB ERROR! Please check the format you in put!$TIMESETC DB Now,you can set the time! $TIMESETF DB Format:(01 25 32) or(01:25:32),and end with CR !$TIMESETS DB Succeed!$TDINV DB In valid time data! In putagai n!$NODATCAP DB You have in put nothin g!$时间TIME DB

22、 8 DUP (:),12 DUP (); 的底DATA ENDS程序开始CODE SEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXLEA SP,TOPLEA DX,INBUF ;指向输入缓冲区CLC;-欢迎界面及主菜单-MAIN: SCROLL 0,0,0,24,79,0; 清屏SCROLL 25,0,0,24,79,50H ;设置窗口颜色SCROLL 21,2,0,22,79,0FH ;设置菜单颜色黑底白字/注意逗号应为半角字符,否则提

23、示 out of memoryDISPS 4,20,MMENUI ;Display the mai n menuDISPS 6,30,MMENUDDISPS 8,20,MMENUCDISPS 10,20,MMENU1DISPS 12,20,MMENU2DISPS 14,20,MMENU3DISPS 16,20,MMENU4DISPS 18,20,MMENU5ML: CURSOR 19,1DHMOV AH,01H ;Recieve the choiceINT 21HCMP AL,31HJL ERRORCMP AL,35HJG ERRORAND AX,00FHLEA BX,BASESHL AL,1

24、;将AL乘2,因为跳转表地址是dw类型的,ADD BX,AXJMP WORD PTR BX;CMP AL,1;JE LTC;Choose1,lowercase letter to capital letter;CMP AL,2;JE FMV ;Choose 2,findthe maximum value;CMP AL,3;JE SORTS ;Choose 3,sort;CMP AL,4;JE STM;Choose4,show curre nt time;CMP AL,5;JE EXIT ;Choose 5,exitthe programERROR: CMP AL,0DH ;女口果是回车的话,赋

25、CRJE MCRMOV WROCAP+23,AL ;Other charMOV WROCAP+24,JMP DMCR: MOV WORD PTR WROCAP+23,RCD:DISPS 20,5,WROCAP ;Show thewrong in formati onJMP MLLTC: CALL LLTOCLISCONTINUE LTCFMV: CALL FMAXVISCONTINUE FMVSORTS: CALL SORTISCONTINUE SORTSSTM: CALL SHOWTIMEISCONTINUE STMEXIT: SCROLL 0,0,0,24,79,0 ; 清屏MOV AH,

26、4CH ;Exit.INT 21H;Process:lowercase letter to capitalletter.LLTOCL PROCREFLASHL:PREP MMENU1 ;显示子菜单CMP CL,0 ;若输入为空则跳转至REDOJE REFLASHLLL1:MOV AL,SICMP AL,aJB MTOB ;NO CHANGECMP AL,zJA MTOBSUB AL,20H ;Con vertMTOB:MOV DI,ALINC SIINC DILOOP LL1MOV BYTE PTR Dl,$DISPS 10,2,OUTCAPDISPS 10,17,OUTBUFRETLLTOC

27、L ENDP;-Process:find the maximum/alue.FMAXV PROCPUSH BX显示子菜单若输入为空则跳REFLASHF:PREP MMENU2CMP CL,0 ; 转至REDOJE REFLASHFMOV AL,0FL1: CMP AL,SIJA NEXTMOV AL,SINEXT:INC SILOOP FL1MOV MAXCAP+26,ALDISPS 10,2,MAXCAPPOP BXRETFMAXV ENDPProcess: sort.SORT PROC显示子菜单PREP MMENU3标题(T),输入提示信息等DEC CXADD SI,CXMOV BYTE

28、PTR SI+1,$LP1: PUSH CXPUSH SILP2:MOV AL,SICMP AL,SI-1JBE NOXCHGXCHG AL,SI-1MOV SI,ALNOXCHG: DEC SILOOP LP2POP SIPOP CXLOOP LP1DISPS 10,2,OUTCAPDISPS 10,17,INBUF2 结果RETSORT ENDP;Process: show curre nttime.SHOWTIME PROCSCROLL 21,2,0,22,79,0FH 清屏,DISPS 3,20,MMENU4显示排序内窗DISPS 5,25,TIMESETCDISPS 7,15,TIM

29、ESETFSHOW:MOV SI,0MOV BL,1OODIV BLMOV AH,2CH ;GET TIMEINT 21HMOV AL,CH ;HOURCALL BCDASC ;要转换的在AL中INC SIMOV AL,CL ;MINUTECALL BCDASCINC SIMOV AL,DHCALL BCDASC ;要转换的在AL中MOV BP,OFFSET TIME ; 使用 int 10H 的13H号功能,在Teletype模式下显示字符串(BP为地址)MOV DX,0A22H ;DX为行列(DH,DLMOV CX,8;CX为显示字符串长度MOV BX,004EH ;BH :页码,BL:

30、属性MOV AX,1301H ;AL:显示输出方式,1字符串中只含显示字符,显示后,光 标位置改变INT 10HMOV AH,02H ;设置光标位置MOV DX,0A22HMOV BH,0INT 10HMOV BX,0018H;延时用(夕卜层),若不延时,光标会在时间左右来回跑!RE: MOV CX,0FFFFHREA: LOOP READEC BXJNZ RE;MOV AH,01H;检测是否有字符输入,ZF=1 :无INT 16HJE SHOWCALL SETTIME ;设置时间子程序RETSHOWTIME ENDP设置时间子程序SETTIME PROCPUSH DXMOV AH, 0AH

31、; 输入时间串LEA DX, INBUFINT 21HCMP INBUF1,0JE NODATMOV BL, 10MOV AL, INBUF + 2SUB AL, OMUL BLADD AL, INBUF + 3SUB AL, OCMP AL, 0JB INVALIDCMP AL, 24JAE INVALID ;判断时有效性MOV CH, ALMOV AL, INBUF + 5SUB AL, 0MUL BLADD AL, INBUF + 6SUB AL, 0CMP AL, 0JB INVALIDCMP AL, 60JAE INVALID ;判断分有效性MOV CL, ALMOV AL, INB

32、UF + 8SUB AL, OMUL BLADD AL, INBUF + 9SUB AL, OCMP AL, 0JB INVALIDCMP AL, 60JAE INVALID ;判断秒有效性MOV DH, ALMOV DL, 0MOV AH, 2DHINT 21H;置系统时间DISPS 12,20,TIMESETS ;设置成功JMP RETURNNODAT: DISPS 12,20,NODATCAPJMP RETURNINVALID:DISPS 12,20,TDINV; 时间数据无效RETURN: POP DXRETSETTIME ENDP;Process :时间数值转换成 ASCII码字符子程序,要转换的在AL中,调用前赋好值-BCDASC PROC NEARPUSH BXCBWMOV BL,10DIV BLADD AL,30HMOV TIMESI,ALINC SIADD AH,30HMOV TIMESI,AHINC SIPOP BXBCDASC ENDP结束!CODE ENDSEND START按下1键按下2键按下3键按下4键按下5键上机体会:几次的上机实验,在自己反复的尝试、 验证与老师的在老师的悉心的指导下, 做到了掌 握基本的微机原理上机操作,对微机原理这门课 的了解更深了一步,对这么课的学习起到了一点 的帮助。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!