微机原理研讨-汇编语言及其程序设计
时间:2026-01-16
时间:2026-01-16
北京交通大学-微机原理研讨-汇编语言及其程序设计
研究性学习报告
——汇编语言及其程序设计
目录
北京交通大学-微机原理研讨-汇编语言及其程序设计
题目一 .............................................................................................................................................. 2
题目分析: ............................................................................................................................... 3 程序设计: ............................................................................................................................... 3 程序调试: ............................................................................................................................... 4 题目二 .............................................................................................................................................. 6
题目分析: ............................................................................................................................... 6 程序设计: ............................................................................................................................... 7 程序调试: ............................................................................................................................... 8 题目三 ............................................................................................................................................ 10
题目分析: ............................................................................................................................. 10 程序设计: ............................................................................................................................. 11 程序调试: ............................................................................................................................. 12 题目四 ............................................................................................................................................ 13
题目分析: ............................................................................................................................. 13 程序设计 ................................................................................................................................. 14 程序调试: ............................................................................................................................. 15
题目一
18.编写程序,将MBUF为起始单元的5个数按相反次序传送到NBUF开始的存储单元中。
北京交通大学-微机原理研讨-汇编语言及其程序设计
题目分析:
在数据段中定义两个数组,第一个为MBUF,用于存放题目要求的5个数,另一个为NBUF,用于反序存放MBUF中的数。主要利用数据传送指令MOV实现该功能,设计程序流程框图如下
程序设计:
DATA SEGMENT MBUF DW 1,2,3,4,5 NBUF DW 5DUP(?) DATA ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA
北京交通大学-微机原理研讨-汇编语言及其程序设计
MOV DS,AX MOV SI,OFFSET MBUF MOV DI,OFFSET NBUF MOV CX,4 ADD SI,8
LOP: MOV AX,[SI] MOV [DI],AX DEC SI DEC SI INC DI INC DI LOOP LOP MOV AH,4CH INT 21H CODE ENDS END START
程序调试:
1、 汇编结果
2、 链接结果
3、 TD调试结果
北京交通大学-微机原理研讨-汇编语言及其程序设计
根据运行结果可以看到,数据段中从起始位置开始存放的字分别为1、2、3、4、5,程序运行后,之后的数据段,即NBUF,分别存放的字为5、4、3、2、1,程序运行结果正确。
北京交通大学-微机原理研讨-汇编语言及其程序设计
题目二
20.编写程序,将内存中某数据块中的正数和负数分开,并分别将这些正数和负数送同一数据段的两个缓冲区中,并在屏幕上显示正数和负数的个数。
题目分析:
该题的重点是区分数据块中所存数据的正负,即使其和0比较,大于零则为正数,存入数据段相应位置,并将记录正数个数的变量加一;负数同理,最后利用字符显示功能,将存放正负数个数的变量显示在屏幕上,但需要注意的是,这两个变量中存放的为16进制数,如果直接输出,则显示的是其所对应的ASKⅡ码,所以需要转换为相应的数字。程序设计框图如下:
北京交通大学-微机原理研讨-汇编语言及其程序设计
程序设计:
DATA SEGMENT ;定义代码段 BUF DB 1,2,-3,-4,-5,6,7,8,-9,10
COUNT EQU $-BUF ;将BUF中数据的个数送入COUNT ZHENG DB ? ;存放正数的个数 FU DB ? ;存放负数的个数 ORG 0010H
D1 DB 8 DUP(?) ;正数存放单元 D2 DB 8 DUP(?) ;负数存放单元 DATA ENDS
STACK1 SEGMENT STACK DW 100 DUP(?) STACK1 ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1 START:
MOV AX,DATA MOV DS,AX
MOV BX,OFFSET BUF MOV CX,COUNT MOV ZHENG,0 MOV FU,0
MOV SI,OFFSET D1 ;正数存放单元的首地址送SI MOV DI,OFFSET D2 ;负数存放单元的首地址送DI LOP: MOV AL,[BX]
CMP AL,0 ;比较[BX]和零
JGE LOP1 ;大于零跳转到LOP1 JLE LOP2 ;小于零跳转到LOP2 LOP1:INC ZHENG MOV AL,[BX] MOV [SI],AL
INC SI ;指向下一个数据 INC BX DEC CX JNZ LOP JMP OK LOP2:INC FU
MOV AL,[BX] MOV [DI],AL INC DI INC BX …… 此处隐藏:4432字,全部文档内容请下载后查看。喜欢就下载吧 ……