编程题-微机原理与接口

简介: 9.编程统计 BUF 内存区若干个有符号数中正数、负数、零的个数并保存到相对应的结果单元。DATA SEGMENTBUF DB 10,20,0,0,0,-10,-20,-30,-40,-50COUNT EQU $-BUFZS_COUNT DB 0FS_COUNT DB 0LS_COUNT DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV BX,OFFSET BUFMOV CX,COUNTXOR DL,DL;初始化正数个数XOR DH,DH;初始化负数个数XO

9.编程统计 BUF 内存区若干个有符号数中正数、负数、零的个数并保存到相对应
的结果单元。
DATA SEGMENT
BUF DB 10,20,0,0,0,-10,-20,-30,-40,-50
COUNT EQU $-BUF
ZS_COUNT DB 0
FS_COUNT DB 0
LS_COUNT DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET BUF
MOV CX,COUNT
XOR DL,DL;初始化正数个数
XOR DH,DH;初始化负数个数
XOR AH,AH;初始化零的个数
AGAIN:MOV AL,[BX]
CMP AL,0
JG ZS;如果是正数,则跳转
JL FS;如果是负数,则跳转
INC AH
JMP NEXT
ZS:INC DL
JMP NEXT
FS:INC DH
NEXT:INC BX
LOOP AGAIN
MOV ZS_COUNT,DL;保存正数结果
MOV FS_COUNT,DH;保存负数结果
MOV LS_COUNT,AH;保存零的结果
MOV AH,4CH
INT 21H
CODE ENDS
END START
10.把内存 2000H 单元中 10 个有符号字节数分成正数和负数,分别存入 P 和 N
单元,并分别统计正数和负数的个数放入 DL 和 DH 寄存器中,请编程实现。
DATA SEGMENT
ORG 2000H
BUF DB 2,5,-6,7,-8,9,12,22,-17,19
P DB 10 DUP(?) ;存正数
N DB 10 DUP(?) ;存负数
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA BX,BUF
LEA SI,P
LEA DI,N
MOV DL,0 ;统计正数
MOV DH,0 ;统计负数
MOV CX,10
AGAIN:MOV AL,[BX]
CMP AL,0
JGE P1
MOV [DI],AL ;负数时存入 N 单元
INC DH ;负数时统计存入 DH
INC DI
JMP NEXT
P1:MOV [SI],AL ;正数时存入 P 单元
INC DL ;正数时统计存入 DL
INC SI
NEXT:INC BX
LOOP AGAIN
MOV AH,4CH
INT 21H
CODE ENDS
END START

相关文章
|
4月前
|
数据采集 数据处理 C语言
单片机:探索其原理、应用与编程实践
单片机:探索其原理、应用与编程实践
64 1
|
存储 程序员
《微机原理与接口技术》简答题总结(一)
《微机原理与接口技术》简答题总结
646 0
《微机原理与接口技术》简答题总结(一)
|
4月前
|
监控 Linux 定位技术
Linux应用开发基础知识——串口应用编程(十一)
Linux应用开发基础知识——串口应用编程(十一)
118 0
Linux应用开发基础知识——串口应用编程(十一)
|
芯片
汇编语言与微机接口课程设计-多功能电子钟
汇编语言与微机接口课程设计-多功能电子钟
308 0
汇编语言与微机接口课程设计-多功能电子钟
|
缓存
蓝桥杯之单片机学习(十一)——串口通信的基本原理与应用
蓝桥杯之单片机学习(十一)——串口通信的基本原理与应用
371 0
蓝桥杯之单片机学习(十一)——串口通信的基本原理与应用
|
芯片
微机原理接口 编程题
第六类、编码转换 1.把 2 位压缩的 BCD 码变成十进制数。 DATA SEGMENT X DB 32H Y DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV CL,4 MOV AL,X SHR AL,CL MOV BL,10 MUL BL MOV BH,X AND BH,0FH ADD AL,BH MOV Y,AL MOV AH,4CH INT 21H CODE ENDS END START 第七类、芯片控制 1.某 8253 的端口地址为 84H~87H,其中,87H 为
101 0
编程题-微机原理与接口
5.用查询方式的打印机接口如图:已知 8255A 的 A 口作为输出打印的数据口, 工作于方式 0,PC 口高 4 位工作于输出方式,PC6 产生 STB 信号,PC 口低 4 位 工作于输入方式,PC2 接收打印机的 BUSY 信号。设打印字符存放在数据段中有 效地址为 1000H 的内存单元。请设计打印程序。(8255A 的端口地址位 80H~83H) CODE SEGMENT ASSUME CS:CODE START:MOV AL,81H OUT 83H,AL ;8255A 初始化 MOV AL,0DH OUT 83H,AL ;设置 PC6=1,选通无效 AGAIN:IN AL,82H
136 0
编程题 微机原理与接口
9.将 BX 寄存器的 16 进制内容输出到屏幕上,假设 BX=1A2BH。 CODE SEGMENT ASSUME CS:CODE START:MOV BX,1A2BH MOV CH,4 NEXT:MOV CL,4 ROL BX,CL MOV DL,BL AND DL,0FH CMP DL,10 JB JB10 ADD DL,7 JB10:ADD DL,30H MOV AH,2 INT 21H DEC CH JNZ NEXT MOV AH,4CH INT 21H CODE ENDS END START 第三类、数值计算 1.已知 AX 中存放的是有符号数-5,实现((AX)×5+14)/2,
76 0
编程题-微机原理与接口
2.首地址为 DAT 的数据区中有 3 个互不相等的 8 位无符号整数,请编写完整程 序,将这 3 个数的最大值存放到 MAX 单元。 DATA SEGMENT DAT DB 6,7,8 MAX DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,DAT+0 ;AL←06H MOV BL,DAT+1 ;BL←07H MOV CL,DAT+2 ;CL←08H L1:CMP AL,BL JA L2 ;AL 中的数据高于 BL 中的数据则跳转 XCHG AL,BL L2:CMP A
140 0
微机原理与接口编程题
第四类、看图编程 1.某系统外接电路如图,8255A 口地址为 2F0H~2F3H,请设计源程序,一次性的 测试开关的位置,当 K 闭合时,LED 亮,K 断开时 LED 灭(提示:C 口高 4 位应为 方式 0 输入,低 4 位为方式 0 输出)。 CODE SEGMENT ASSUME CS:CODE START:MOV DX,2F3H ;控制口端口地址 MOV AL,88H ;工作方式控制字 OUT DX,AL MOV DX,2F2H ;C 口的端口地址 IN AL,DX ;读取 C 口的状态 TEST AL,80H ;测试 PC7 JNZ L1 MOV AL,00H ;PC7=0,开关
271 0