百家汽车网
您的当前位置:首页微机原理编程例题

微机原理编程例题

来源:百家汽车网
1编程计算z=(X2-3y)/2,设x,y为单字节正整数,结果Z用两个字节来存放。

• DATA SEGMENT • X DB 25 • Y DB 32 • Z DW ? • DATA ENDS • ;

• CODE SEGMENT

• ASSUME CS:CODE,DS:DATA • EXPRE PROC FAR • START:PUSH DS

• SUB AX,AX

• PUSH AX • MOV AX,DATA • MOV DS,AX • MOV AL,X

• MUL AL ;X2 • MOV BL,Y • ADD BL,BL

ADD BL,Y ;3Y • SUB AX,BX ; X2-3Y

• SHR AX,1 ; (X2-3Y)/2 • MOV Z,AX ;存放结果 • EXPRE ENDP • CODE ENDS • END START

2编程求S=∑i,并将S存入SUM单元

• DATA SEGMENT • SUM DW ? DATA ENDS

• • • • • • • • • • • • • •

CODE SEGMENT

ASSUME CS:CODE,DS:DATA ;

START:MOV AX,DATA

MOV DS,AX

MOV AX,0;和清零

MOV CX,100;设计数初值 ADD AX,CX;求和 DEC CX ;计数 JNZ AGAIN

MOV SUM,AX;存和 MOV AH,4CH INT 21H CODE ENDS

• END START

3在内存的字单元X中有一个16位的二进制数。试编写一程序统计出X单元中含1的个数,并存入RESULT单元

• DATA SEGMENT

• X DW 31A0H • RESULT DW ? • DATA ENDS • CODE SEGMENT

• ASSUME CS:CODE,DS:DATA • START PROC FAR

• PUSH DS • XOR AX,AX • PUSH AX

• MOV AX,DATA • MOV DS,AX

• MOV CX,0; 初始化cx=0 • MOV AX,X ;取X到AX • AGAIN: AND AX,AX;X=0

• JZ EXIT ;X=0.退出 • SHL AX,1

• JNC NEXT ;CF=1?

• JNC CX ;是,计数 • NEXT:JMP AGAIN • EXIT: JMP AGAIN

• EXIT: MOV RESULT,CX;存结果 • RET • START ENDP • CODE ENDS

• END START

4在40个元素组成的数组中寻找第一个非0元素 • MOV CX,28H • MOV SI.0FFH • NEXT:INC SI

• CMP BYTE PTR[SI],0

• LOOPZ NEXT • JNZ OKK

• CALL DISPLAY1 • RET • OKK: CALL DISPLAY2 • RET

5.PAGE 60,132;指定每页60行,132列

TITLE 对两个字数据求和;为源程序指定标题

• • • • • • • • • • • • • • • • • • • •

SSEG SEGMENT ;堆栈段开始

DW 20H ;定义堆栈段空间 SSEG ENDS ;堆栈段结束 DSEG SEGMENT ;数据段开始 AGRX DW 1234H ;定义被加数 AGRY DW 5678H ;定义加数

SUM DW ? ;定义存放结果的空单元 DSEG ENDS ;数据段结束 CSEG SEGMENT ;代码段开始

ASSUME CS:CSEG,DS:DSEG SS:SSEG MOV AX,DSEG;初始化DS寄存器 MOV DS,AX

MOV AX,AGRX;取被加数到AX寄存器 MOV BX,AGRY;取加数到BX寄存器 ADD AX,BX; 两个数相加 MOV SUM,AX;存放结果 MOV AX,4C00H

INT 21H;程序正常退出 CSEG ENDS;代码段结束

END MAIN ;源程序结束

因篇幅问题不能全部显示,请点此查看更多更全内容