微机原理编程题 1. 分支程序设计 ①.编写一段程序,已知BUF1 单元中有一带符号字节数据X,BUF2 中有一带符号字节数据Y,根据以下函数关系编写程序求Z 的值,结果存入RESULT 单元。Z=|X-Y|; DATA SEGMENT BUF1 DB 05H BUF2 DB 02H RESULT DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,BUF1 MOV BL,BUF2 SUB AL,BL JNC GREAT NEG AL GREAT:MOV RESULT,AL EXIT: MOV AH,4CH INT 21H CODE ENDS END START ②.编写一段程序,已知BUF 单元中有一无符号字节数据X,假设为 8,根据以下函数关系编写程序求Y 的值,结果存入RESULT 单元。Z=5X X<10,X-5 X>=10; DATA SEGMENT BUF DB 8 RESULT DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,BUF CMP AL,10 JAE GRE MOV BL,AL ADD AL,AL ADD AL,AL ADD AL,BL JMP DONE GRE: SUB AL,5 DONE: MOV RESULT,AL MOV AH,4CH INT 21H CODE ENDS END START ③.在内存单元BUF 中存放一个带符号字节数据X,假定为-2,试根据以下函数关系编写程序求Y 的值,结果存入RESULT 单元。Y=1 X>0,0 X=0,-1 X<0; DATA SEGMENT BUF DB -2 RESULT DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,BUF CMP AL,0 JGE L1 MOV AL,-1 JMP L3 L1:JZ L2 MOV AL,1 JMP L3 L2:MOV AL,0 L3:MOV RESULT,AL MOV AH,4CH INT 21H CODE ENDS END START 2. N 个数中求最大值、最小值.假定N=10,已知原始数据存放在BUF 开始的内存单元中,将结果存入MAX,MIN 内存单元中。 DATA SEGMENT BUF DB 3,5,7,8,5,3,9,7,13,1 COUNT EQU $-BUF MAX DB ? MIN DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,COUNT-1 MOV AL,BUF MOV MAX,AL MOV MIN,AL LEA SI,BUF AGAIN: MOV AL,[SI+1] CMP AL,MIN JGE S1 MOV MIN,AL S1: CMP AL,MAX JLE S2 MOV MAX,AL S2: INC SI LOOP AGAIN MOV AH,4CH INT 21H CODE ENDS END START 3. 编写程序求1+2+3+… … +N<100 时最大的N 值,将N 值送NUM 单元中,同时将1+2+3+… … +N 的和送到SUM 单元...