微型计算机循环结构程序,微机原理实验4循环结构.doc

时间:2025-03-11 18:52:50

微机原理实验4循环结构

物理与机电工程系

(2015——2016 学年第 一 学期)

《调试程序的使用》

上机实验报告

专 业:电子信息工程

学 号:

姓 名: 成功回

任课教师: 官方个

实验地点: 实验楼5537

项目编号: 实 验 四

实验目的:

加深对循环结构的理解。

掌握循环程序的设计方法。

实验内容:

编制程序计算S=1+2·3+3·4+4·5+……+N(N+1)+……直到N(N+1)大于200为止,并将结果由屏幕上显示出来。

将字形变量x以二进制数的形式在屏幕上显示输出。

将字形变量x以十六进制数的形式在屏幕上显示输出。

将内存单元缓冲区中的符号数(20个)按从小到大的顺序排列,并以十六进制数的形式显。

实验过程:

编制程序计算S=1+2·3+3·4+4·5+……+N(N+1)+……直到N(N+1)大于200为止,并将结果由屏幕上显示出来。

程序流程图如下:

程序源代码如下:

DATAS SEGMENT

s dw ?;此处输入数据段代码

DATAS ENDS

STACKS SEGMENT

dw 64 dup(?);此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START: MOV AX,DATAS

MOV DS,AX

mov bx,0001h ; BX=1

mov dl,02h ;DL=2

lop2: mov al,dl ;AL=2

inc dl;加1 ;DL=3

mul dl;无符号数乘法 AX=AL*DL=2*3

add bx,ax ;BX=AX+BX

cmp ax,00C8h;与200比较

jbe lop2;不高于转移

mov s,bx

mov ch,4

mov cl,4

lop1: rol bx,cl

mov dl,bl

and dl,0Fh

cmp dl,09h

jbe next;低于等于转移 <=

add dl,7

next:add dl,30h

mov ah,2

int 21h

dec ch

jnz lop1;非零转移

MOV AH,4CH

INT 21H

CODES ENDS

END START

程序运行结果如下:

程序反汇编过程如下:

将字形变量x以二进制数的形式在屏幕上显示输出。

程序流程图如下:

程序源代码如下:

DATAS SEGMENT

x dw 1325h ;此处输入数据段代码

DATAS ENDS

STACKS SEGMENT ;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

MOV AX,DATAS

MOV DS,AX

mov bx,x

mov cx,10h

lop1: rol bx,1 ;不带cf的循环左移

jc next;进位转移,即cf=1

mov dl,30h;将0送入dl

jmp next2

next: mov dl,31h;将1送入dl

next2:mov ah,2

int 21h

loop lop1;循环执行lop1

MOV AH,4CH

INT 21H

CODES ENDS

END STARTDATAS SEGMENT

x dw 933;此处输入数据段代码

DATAS ENDS

STACKS SEGMENT ;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

MOV AX,DATAS

MOV DS,AX

mov bx,x

mov ch,4

mov cl,4

lop1: rol bx,cl j