IBM-PC汇编语言程序设计实验报告 联系客服

发布时间 : 星期六 文章IBM-PC汇编语言程序设计实验报告更新完毕开始阅读

3.实验具体设计实现及结果

4.源代码

二进制转十六进制: PROGNAM SEGMENT MAIN PROC FAR

ASSUME CS:PROGNAM,DS:DATAS,SS:STACKS START:

PUSH DS SUB AX,AX PUSH AX

第 9 页 共 21 页

MOV CH,4

MOV BX,0101010011101001B ROTATE: MOV CL,4 ROL BX,CL MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,3AH JL PRINTIT ADD AL,7H PRINTIT:

MOV DL,AL MOV AH,2 INT 21H DEC CH JNZ ROTATE RET MAIN ENDP PROGNAM ENDS END

冒泡排序: DSEG SEGMENT

SCORE DB 11H,02H,15H,32H,5H,6H,7H,8H,9H,10H,90 DUP(05H) MAX DB ? MIN DB ? DSEG ENDS CSEG SEGMENT

ASSUME DS:DSEG,CS:CSEG START: MOV AX,DSEG MOV DS,AX

LEA BX,SCORE ;取数组的首地址 MOV CX,100 ;控制循环次数 XOR SI,SI ;将SI清零 XOR DI,DI ;将DI清零

L1: MOV AH,[BX+SI] ;用基变址寻址取操作数, L1为外循环,(SI)为循环变量,

;相当于i

L2: MOV AL,[BX+DI] ; L2为内循环,(DI)为循环变量,相当于j

CMP AH,AL

JAE L3

第 10 页 共 21 页

MOV DH,AH ;AH

MOV [BX+DI],AL ;将交换后的数存入存储器 MOV [BX+SI],AH ;这两步很重要 L3: INC DI ;AH>=AL,不需交换,(AH)直接和后一个数比较,相当于j++

CMP DI,100 ;判断内层循环是否结束 JB L2 ;没结束,继续循环

;内层循环结束了

INC SI ;外层变量SI加一,相当于i++ MOV DI,SI ;相当于j=i LOOP L1

;通过寄存器实现两个存储器数据间的交换

MOV AH,BYTE PTR[BX] ;基址寻址 MOV AL,BYTE PTR[BX+99] MOV MAX,AH MOV MIN,AL

MOV AH,4CH ;返回操作系统 INT 21H CSEG ENDS END START

汇编语言实验三 求Fibonacci递归数

1.实验目的与要求

【实验目的】

掌握子程序的设计方法,熟悉递归程序的设计

【实验要求】

掌握递归程序的调用、返回及入口、出口的传递方法

第 11 页 共 21 页

2.实验内容与实现原理

程序接受由用户键入的数N,根据给定的N值,计算Fibonacci数。 Fibonacci数的公式如下:

Fib(1)=1;当n=1 Fib(2)=1;当n=2

Fib(n)=Fib(n-1)+Fib(n-2)

3.实验具体设计实现及结果

4.源代码

DATAS SEGMENT

STR1 DB 'Please input a number(1-50):N=','$' STR2 DB 13,10,'FIB(N)=','$'

WRONGSTR DB 13,10,13,10,'A number between 1 and 50 please!',13,10,13,10,'$'

INPUTBUFFER DB 3,?,3 DUP(?) N DW ? ;输入N值 RESULT1H DW 0 RESULT1L DW 0

第 12 页 共 21 页