系统认识
一、实验目的
掌握TD-PITE微机原理与接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。
二、实验设备
PC微机一台,TD-PITE实验装置一套。
三、实验内容
编写实验程序,将00H~0FH共16个数写入内存3000H开始的连续16个存储单元中。
四、实验步骤
1. 运行Wmd86软件,进入Wmd86集成开发环境。
2. 根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言,如图1所示。语言选择后,下次再启动软件,语言环境保持这次的修改不变。在这里,我们选择汇编语言。
图1
3. 语言选择后,点击新建或按Ctrl+N组合键来新建一个文档,如图2所示。默认文件名为Wmd861。
图2
4. 编写实验程序,如图3所示,并保存,此时系统会提示输入新的文件名,输完后点击保存。
图3
程序:
SSTACK SEGMENT STACK ;定义堆栈段
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE, SS:SSTACK
START: PUSH DS
XOR AX, AX
MOV DS, AX
MOV SI, 3000H ;建立数据起始地址
MOV CX, 16 ;循环次数
AA1: MOV [SI], AL
INC SI ;地址自加1
INC AL ;数据自加1
LOOP AA1
AA2: JMP AA2
CODE ENDS
END START
5. 点击,编译文件,若程序编译无误,则输出如图4所示的输出信息,然后再点击进行链接,链接无误输出如图5所示的输出信息。
图4
图5
6. 连接PC与实验系统的通讯电缆,打开实验系统电源。
7. 编译、链接都正确并且上下位机通讯成功后,就可以下载程序,联机调试了。可以通过端口列表中的“端口测试”来检查通讯是否正常。点击 下载程序。 为编译、链接、下载组合按钮,通过该按钮可以将编译、链接、下载一次完成。下载成功后,在输出区的结果窗中会显示“加载成功!”,表示程序已正确下载。起始运行语句下会有一条绿的背景。如图6所示。
图6
8. 将输出区切换到调试窗口,使用D0000:3000命令查看内存3000H起始地址的数据,如图7所示。存储器在初始状态时,默认数据为CC。
图7
9. 点击按钮运行程序,然后再点击来停止程序运行,接下来观察程序运行结果,仍使用命令D0000:3000来观察数据变化。如图8所示。
图8
10. 也可以通过在语句AA2: JMP AA2处设置断点,断点显示如图9所示,然后运行程序,当遇到断点时程序会停下来,然后观察数据。可以使用E0000:3000来改变该地址单元的数据,如图10所示,输入11后,按“空格”键,可以接着输入第二个数,如22,结束输入按“回车”键。
图9
图10
操作练习:
编写程序,将内存3500H单元开始的8个数据复制到3600H单元开始的数据区中。通过调试验证程序功能,使用E命令修改3500H单元开始的数据,运行程序后使用D命令查看3600H单元开始的数据。
实验一 数码转换编程及程序调试
一、实验目的
掌握不同进制数及编码相互转换的程序设计方法,加深对数码转换的理解。
熟悉程序调试的方法。
二、实验设备
Pc微机一台,TD-PITE实验装置一套。
三、实验内容及步骤
计算机输入设备输入的信息一般是由ASSII码或BCD码表示的数据或字符,CPU一般均用二进制数进行计算或其它信息处理,处理结果的输出又必须依照外设的要求变为ASCII码、BCD码或七段显示码等。因此,在应用软件中,各类数制的转换是必不可少的。
计算机与外设间的数制转换关系如图所示2-1所示,数制对应关系如表2-1所示。
图2-1 数制转换关系
表1 数制对应关系表
十六进制数 | BCD码 | 二进制机器码 | ASCII码 | 七段码 | |
0 | 0000 | 0000 | 30H | 40H | 3FH |
1 | 0001 | 0001 | 31H | 79H | 06H |
2 | 0010 | 0010 | 32H | 24H | 5BH |
3 | 0011 | 0011 | 33H | 30H | 4FH |
4 | 0100 | 0100 | 34H | 19H | 66H |
5 | 0101 | 0101 | 35H | 12H | 6DH |
6 | 0110 | 0110 | 汇编语言结束指令36H | 02H | 7DH |
7 | 0111 | 0111 | 37H | 78H | 07H |
8 | 1000 | 1000 | 38H | 00H | 7FH |
9 | 1001 | 1001 | 39H | 18H | 67H |
A | 1010 | 41H | 08H | 77H | |
B | 1010 | 42H | 03H | 7CH | |
C | 1011 | 43H | 46H | 39H | |
D | 1100 | 44H | 21H | 5EH | |
E | 1110 | 45H | 06H | 79H | |
F | 1111 | 46H | 0EH | 71H | |
1. 将ASCII码表示的十进制数转换为二进制数
十进制表示为:
Di代表十进制数0,1,2,…,9;
上式转换为:
由此可归纳十进制数转换为二进制数的方法:从十进制数的最高位Dn开始作乘10加次位的操作,依次类推,则可求出二进制数的结果。
参考流程:
实验程序:
PUBLIC SADD
SSTACK SEGMENT STACK
DW 64 DUP(?)
SSTACK ENDS
DATA SEGMENT
SADD DB 30H,30H,32H,35H,36H ;十进制数:00256
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV AX, OFFSET SADD
MOV SI, AX
MOV BX, 000AH
MOV CX, 0004H
MOV AH, 00H
MOV AL, [SI]
SUB AL, 30H
A1: IMUL BX
MOV DX, [SI+01]
AND DX, 00FFH
ADC AX, DX
SUB AL, 30H
INC SI
LOOP A1
A2: JMP A2
CODE ENDS
END START
实验步骤:
(1)绘制程序流程图,编写实验程序,经编译、链接无误后装入系统;
(2)待转换数据存放于数据段,根据自己要求输入,默认为30H,30H,32H,35H,36H;
(3)运行程序,然后停止程序;
(4)查看AX寄存器,即为转换结果,应为:0100 ;
(5)反复试几组数据,验证程序的正确性。
2. 将十进制数的ASCII码转换为BCD码
从键盘输入五位十进制数的ASCII码,存放于3500H起始的内存单元中,将其转换为BCD码后,再按位分别存入350AH起始的内存单元内。若输入的不是十进制的ASCII码,则对应存放结果的单元内容为“FF”。由表1可知,一字节ASCII码取其低四位即变为BCD码。
实验程序:
SSTACK SEGMENT STACK
DW 64 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV CX, 0005H ;转换位数
MOV DI, 3500H ;ASCII码首地址
A1: MOV BL, 0FFH ;将错误标志存入BL
MOV AL, [DI]
CMP AL, 3AH
JNB A2 ;不低于3AH则转A2
SUB AL, 30H
JB A2 ;低于30H则转A2
MOV BL, AL
A2: MOV AL, BL ;结果或错误标志送入AL
MOV [DI+0AH],AL ;结果存入目标地址
INC DI
LOOP A1
A3: JMP A3
CODE ENDS
END START
实验步骤:
(1)自己绘制程序流程图,然后编写程序,编译、链接无误后装入系统;
(2)在3500H~3504H单元中存放五位十进制数的ASCII码,即:键入E3500后,输入31,32,33,34,35;
(3)运行程序,然后停止程序运行;
(4)键入D350A,显示运行结果,应为:
0000:350A 01 02 03 04 05 CC …
(5)反复测试几组数据,验证程序功能。
3. 将十六位二进制数转换为ASCII码表示的十进制数
十六位二进制数的值域为0~65535,最大可转换为五位十进制数。
五位十进制数可表示为:
Di:表示十进制数0~9
将十六位二进制数转换为五位ASCII码表示的十进制数,就是求D1~D4,并将它们转换为ASCII码。自行绘制程序流程图,编写程序可参考例程。例程中源数存放于3500H、3501H中,转换结果存放于3510H~3514H单元中。
实验程序:
SSTACK SEGMENT STACK
DW 64 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV SI,3500H ;源数据地址
MOV DX,[SI]
MOV SI,3515H ;目标数据地址
A1: DEC SI
MOV AX,DX
MOV DX,0000H
MOV CX,000AH ;除数10
DIV CX ;得商送AX, 得余数送DX
XCHG AX,DX
ADD AL,30H ;得Di得ASCII码
MOV [SI],AL ;存入目标地址
CMP DX,0000H
JNE A1 ;判断转换结束否,未结束则转A1
A2: CMP SI,3510H ;与目标地址得首地址比较
JZ A3 ;等于首地址则转A3,否则将剩余地址
DEC SI ;中填30H
MOV AL,30H
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论