1、DATA SEGMENT DAT DB 0A5H,2 DUP(?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AL,DAT ;取被操作数 MOV BL,AL ;备份操作数 MOV CL,4 ;设置准备移动的位数 MOV BL,CL ;取操作数的高4位 MOV DAT+1,BL ;将高BCD数存入DAT+1 AND AL,0FH ;取操作数的低4位 MOV DAT+2,AL ;将低BCD数存入DAT+2 MOV AH,4CH INT 21HCODE ENDS END START 程序运行
2、结果如下:2.调试程序2,源程序如下:该程序实现了特殊符号的输出功能3.调试程序3:下面程序完成将HEX为起始地址的两位十六进制(ASCII码)转换成八位二进制数存入BIN单元,请阅读程序,找出其中的错误之处,并上机调试运行该程序。 ORG 1000H BIN DB ? HEX DB 6B ORG 1030H DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H ORG 1040H DB 0AH,0BH,0CH,0DH,0EH,0FH MOV AX, DATA MOV DS, AX MOV AL, HEX MOV BX, OFFSET BIN SUB AH, A
3、H ADD BX, AX MOV DL, BX MOV DL, 4 MOV AL, HEX+1 XOR AH, AH MOV AL, BX OR AL, DL MOV BIN, AL MOV AH, 4CH INT 21H程序的错误如下:修改后程序如下:(红色为修改处)BIN DB ? ;存放转换后的二进制数HEX DB 待转换的十六进制数6BH DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H 09对应的二进制数转换表 ORG 1041H DB 0AH,0BH,0CH,0DH,0EH,0FH ;AF对应的二进制数转换表 ASSUME CS: MOV AL,
4、 HEX ;十六进制高位36H-AL MOV BX, OFFSET BIN ;BIN的偏移地址1000H-BX SUB AH, AH ;AH清0 ADD BX, AX ;1036 H- BX形成转换表地址 MOV DL, BX ;DL=(1036H)=06H MOV CL, 4 ;将DL低4位左移至高4位 SHL DL, CL MOV AL, HEX+1 ;十六进制低位42H-BXXOR AH, AH ;1042H-BX形成转换表地址 MOV AL, BX ;AL=(1042H)=0BH OR AL, DL ;AL=0BH V60H=6BH MOV BIN, AL ;6BH-BIN单元CODE
5、 ENDS END START运行结果如下:4列出求262+182的小汇编程序清单。 -AXXXX:0100 MOV AL,1A ;26=1AH0103 SHR AL,1 ;AL右移1位,相当于本身除以20105 MOV BL,AL ;结果转存BL0107 MOV AL,12 ;18=12H0109 SHL AL,1 ;AL左移1位,相当于本身乘以2010B ADD AL,BL ;AL存放最后结果010D HLT010E5编写程序1,实现W=(3X+6Y)*4-8Z,设X=3,Z=19。将编写好的程序1输入、编译、连接并运行。程序1清单DSEG SEGMENT ;数据段定义 X DB 5 ;加
6、数变量X的定义及赋值 Y DB 3 ;加数变量Y的定义及赋值 Z DB 19 ;加数变量Z的定义及赋值 W DW ?结果变量W的定义DSEG ENDS ;数据段定义结束CSEG SEGMENT ;代码段定义CSEG, DS:DSEG ;呈现各个定义的段定义程序开始执行 MOV AX, DSEG ;获取数据段的段地址 MOV DS, AX ;把数据段的段地址存入DS寄存器中BEGIN: MOV AL, X MOV BL, AL SHL AL, 1 ADD AL, BL ; AL=3X MOV BL, Y SHL BL, 1 MOV BH, BL ADD BL,BH ; BL=6Y AL=(3X+
7、6Y) MOV BL, 4 MUL BL ; AX=(3X+6Y)*4 MOV BX, AX ; BX=(3X+6Y)*4 MOV AL, Z MOV CL, 8 MUL CL ; AX=8Z SUB BX, AX ; BX=(3X+6Y)*4-8Z MOV W, BX MOV AH, 4CH INT 21HCSEG ENDS ;代码段结束 END START ;程序执行结束程序1运行结果:实验情况与体会:通过本次上机实验,学习了数值转换。实验过程中,遇到很多问题,比如程序一的编写,基本上都是学习书本以及依靠书本多做题才编出来的,仅有的几次上机实验,要抓紧时间学习和交流,时间挺少的。在今后的学习和生活中,我们都需要相互学习、相互交流,共同进步。学习是一个循序渐进的过程。通过这次实验,使我了解到运行调试程序的不易,今后一定更加努力,把程序做到最好!对于不足之处,会积极改正。注:篇幅不够,可以另外附页。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1