1、实验一数码转换编程及程序调试个人采集整理资料, 仅供沟通学习, 勿作商业用途实验一数码变换编程及程序调试一、实验目的掌握不一样进制数及编码互相变换的程序设计方法,加深对数码变换的理解。熟习程序调试的方法。二、实验设施Pc 微机一台, TD-PITE 实验装置一套。三、实验内容及步骤计算机输入设施输入的信息一般是由 ASSII 码或 BCD码表示的数据或字符, CPU一般均用二进制数进行计算或其余信息办理,处理结果的输出又一定依据外设的要求变成 ASCII 码、 BCD 码或七段显示码等。所以,在应用软件中,各种数制的变换是必不行少的。b5E2RGbCAP计算机与外设间的数制变换关系如下图 2-
2、1 所示,数制对应关系如表 2-1 所示。键盘ASCII 码ASCII 码CRT 显示主ASCII 码光电机ASCII 码打印机机拨码开关 BCD 码 BCD 码 多段显示数据开关二进制二进制位显示1 / 12个人采集整理资料, 仅供沟通学习, 勿作商业用途图2-1 数制变换关系表1 数制对应关系表十六 进 BCD码二 进 制 ASCII 码 七段码制数机器码00000000030H40H3FH10001000131H79H06H20010001032H24H5BH30011001133H30H4FH40100010034H19H66H50101010135H12H6DH60110011036
3、H02H7DH70111011137H78H07H81000100038H00H7FH91001100139H18H67HA101041H08H77HB101042H03H7CHC101143H46H39HD110044H21H5EHE111045H06H79HF111146H0EH71H1.将 ASCII 码表示的十进制数变换为二进制数十进制表示为:Di 代表十进制数 0,1,2, , 9;上式变换为:2 / 12个人采集整理资料, 仅供沟通学习, 勿作商业用途由此可概括十进制数变换为二进制数的方法:从十进制数的最高位Dn 开始作乘 10 加次位的操作,挨次类推,则可求出二进制数的结果。 p
4、1EanqFDPw参照流程:实验程序:PUBLIC SADDSSTACK SEGMENT STACKDW 64 DUP(?SSTACK ENDSDATA SEGMENTSADD DB 30H,30H,32H,35H,36H 。十进制数 :00256DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA3 / 12个人采集整理资料, 仅供沟通学习, 勿作商业用途START: MOV AX, DATAMOV DS, AXMOV AX, OFFSET SADDMOV SI, AXMOV BX, 000AHMOV CX, 0004HMOV AH, 00HMOV AL,
5、 SISUB AL, 30HA1: IMUL BXMOV DX, SI+01AND DX, 00FFHADC AX, DXSUB AL, 30HINC SILOOP A1A2: JMP A2CODEENDSEND START实验步骤:1)绘制程序流程图,编写实验程序,经编译、链接无误后装入系统;4 / 12个人采集整理资料, 仅供沟通学习, 勿作商业用途2)待变换数据寄存于数据段,依据自己要求输入,默以为 30H,30H,32H,35H,36H;3)运转程序,而后停止程序;4)查察 AX寄存器,即为变换结果,应为: 0100 ;STACKENDSCODE SEGMENTASSUME CS:CO
6、DESTART:MOV CX, 0005H。变换位数MOV DI, 3500H。ASCII 码首地点A1:MOV BL, 0FFH。将错误标记存入 BLMOV AL, DICMP AL, 3AH5 / 12个人采集整理资料, 仅供沟通学习, 勿作商业用途JNB A2 。不低于 3AH 则转A2SUB AL, 30HJB A2 。低于 30H则转 A2MOV BL, ALA2: MOV AL, BL 。结果或错误标记送入 ALMOV DI+0AH,AL 。结果存入目标地点INC DILOOP A1A3: JMP A3CODE ENDSEND START实验步骤:1)自己绘制程序流程图,而后编写程
7、序,编译、链接无误后装入系统;2)在 3500H3504H单元中寄存五位十进制数的 ASCII 码,即:键入E3500后,输入 31,32,33,34,35;RTCrpUDGiT 3)运转程序,而后停止程序运转;4 ) 键 入 D350A , 显 示 运 行 结 果 , 应 为 :0000:350A 01 02 03 04 05 CC 5PCzVD7HxASTACKENDSCODE SEGMENTASSUME CS:CODESTART: MOV SI,3500H 。源数据地点MOV DX,SIMOV SI,3515H 。目标数据地点A1: DEC SIMOV AX,DXMOV DX,0000H
8、MOV CX,000AH 。除数 10DIV CX 。得商送 AX, 得余数送 DX7 / 12个人采集整理资料, 仅供沟通学习, 勿作商业用途XCHG AX,DXADD AL,30H。得 Di 得 ASCII 码MOV SI,AL。存入目标地点CMP DX,0000HJNE A1。判断变换结束否,未结束则转 A1A2:CMP SI,3510H。与目标地点得首地点比较JZ A3。等于首地点则转 A3,不然将节余地点DEC SI。中填 30HMOV AL,30HMOV SI,ALJMP A2A3:JMP A3CODE ENDSEND START实验步骤1)编写程序,经编译、链接无误后,装入系统;
9、2)在 3500H、3501H中存入 0C 00;3)运转程序,而后停止运转;4)检查运转结果,键入 D3510,结果应为: 30 30 30 31 32 ;SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV CX,0004HMOV DI,3500H 。十六进制数源地点MOV DX,DIA1: MOV AX,DXAND AX,000FH 。取低 4 位CMP AL,0AHJB A2 。小于 0AH则转 A2ADD AL,07H 。在 AFH之间,需多加上 7HA2: ADD AL,30H 。变换为相应 ASCII 码MOV DI+0DH,AL 。结果
10、存入目标地点DEC DI9 / 12个人采集整理资料, 仅供沟通学习, 勿作商业用途PUSH CXMOV CL,04HSHR DX,CL 。将十六进制数右移 4 位POP CXLOOP A1A3: JMP A3CODE ENDSEND START实验步骤1)编写程序,经编译、链接无误后装入系统;2)在 3500H、3501H中存入四位十六进制数 203B,即键入 E3500,而后输入 3B 20;3)先运转程序,而后再停止运转;4)键入 D350A,显示结果为: 0000:350A 32 30 33 42 CC ;SSTACK ENDS10 / 12个人采集整理资料, 仅供沟通学习, 勿作商业
11、用途CODE SEGMENTASSUME CS:CODESTART: XOR AX, AXMOV CX, 0004HMOV SI, 3500HMOV DI, 3510HA1: MOV AL, SIADD AL, ALMOV BL, ALADD AL, ALADD AL, ALADD AL, BLINC SIADD AL, SIMOV DI, ALINC SIINC DILOOP A1A2: JMP A2CODE ENDSEND START实验步骤11 / 12个人采集整理资料, 仅供沟通学习, 勿作商业用途1)编写程序,经编译、链接无误后装入系统;2)将四个二位十进制数的 BCD码存入 3500H3507H 中,即:先键入 E3500,而后输入 01 02 03 04 05 06 07 08 ;Zzz6ZB2Ltk3)先运转程序,而后停止运转;4)键入 D3510显示变换结果,应为: 0C 22 38 4E ;5)频频输入几组数据,考证程序功能。声明:全部资料为自己采集整理,仅限个人学习使用,勿做商业用途。12 / 12
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1