长春理工大学
汇编语言
实验报告
实验题目:
循环程序设计
实验时间:
2016 年 4 月 20 日
实验地点:
东三教912
班级:
1405111
学号:
140511114
姓名:
王国伟
一、实验目的:
,掌握循环程序的设计方法
2. 学会针对不同的问题,选用不同的组织循环的方法。
EQU 及操作符'$'的使用。
4. COM文件的要求和生成过程。
二、实验准备
code segment
org 100h
assume cs:code,ds:code
main: jmp start
array dw 1234h,5673h,7fffh,8000h,0dffh
dw 0ab5h,0369h,005fh,5634h,9069h
count equ $-array
start: mov cx,count
shr cx,1
dec cx
mov bl,-1
again: mov dx,cx
and bl,bl
je exit
xor bl,bl
xor si,si
again1: mov ax,array[si]
cmp ax,array[si+2]
jle nchg
xchg array[si+2],ax
mov array[si],ax
mov bl,-1
nchg: inc si
inc si
dec dx
jnz again1
loop again
exit: int 20h
code ends
end main
1)输入,汇编并连接此程序。忽略连接时的无堆栈告警。
2)。COM文件,命令格式:
EXE2BIN? ???.EXE ????.COM
3)在DEBUG下运行此程序,记录运行结果。
4)思考:将转移指令JLE改为JBE,JGE和JAE,分别运行并记录排序结果。
JLE
JBE
三、实验任务
:将一个包含有20个有符号数据的数组arrayM分成两个数组,正数数组arrayP 和负数数组arrayN,并分别把两个数组中的数据个数显示出来
.model small
.stack
.data
arrayM DB 03H,30H,0F4H,0AFH,0AH,90H,87H,50H,03H,46H,0F4H,0AFH,0AH,90H,87H,50H
arrayP DB 20 DUP(?)
arrayN DB 20 DUP(?)
countP DB ?
countN DB ?
.code
.startup
MOV BX,0
MOV SI,0
MOV DI,0
MOV CX,20
MOV countP,0
MOV countN,0
NEXT: MOV AL,arrayM[BX]
TEST AL,80H
JNZ NN
MOV arrayP[SI],AL
INC SI
INC countP
JMP PP
NN:
第六次实验报告 来自淘豆网m.daumloan.com转载请标明出处.