汇编语言上机考试100分值题目

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

code ends end start data segment sty1 db -1,-128,0,0,0,1,15,7,127 nm db 0;负数的个数 zm db 0;零的个数 pm db 0;正数个数 data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov cx,9 lea si,sty1 aa:mov al,[si] cmp al,0 jl pnum jz zero inc pm jmp exit pnum: inc nm jmp exit zero:inc zm exit:inc si loop aa mov BH,zm mov DL,nm mov DH,pm nop mov ax,4c00h int 21h code ends end start 19、(100分) (1)利用8259和8255芯片,来实现8255的A口所接的发光二极管的循环移 位熄灭,从最低位开始所接的发光二极管开始实现,例如PA0接的led灯
code ends end start (2) 采用查表法实现将两个两位的十六进制数转换为ASCII码并在屏幕显
示,设被转换的两个十六进制数在hex开始的内存单元中。 DATA SEGMENT BUF DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H DB 41H,42H,43H,44H,45H,46H Hex DB 11H,0Bh DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA BX,BUF MOV AL,HEX mov ch,al mov cl,4 rol al,cl AND AL,0FH XLAT MOV DL,AL MOV AH,2 INT 21H MOV AL,ch AND AL,0FH XLAT MOV DL,AL MOV AH,2 INT 21H MOV AL,HEX+1 mov ch,al mov cl,4 rol al,cl AND AL,0FH XLAT MOV DL,AL
start: mov al,10000001b mov dx,303h out dx,al again: mov dx,302h in al,dx and al,00000011b cmp al,00h je l1 cmp al,01h je l2 cmp al,02h je l4 cmp al,03h je l1 l1: mov al,01101101b jmp next l2: mov al,10110110b jmp next l4: mov al,11011011b jmp next next: mov dx,301h out dx,al jmp again code ends end start (2)统计一组数当中正数、负数、零的个数,分别放到DH、 DL、 BH 中。 data segment table db -1,-128,0,0,0,1,15,7,127 data ends code segment assume cs:code,ds:data start: 补全程序 stop: mov ah,4ch int 21h
灭,其他灯亮,按下脉冲发生器后,PA1所接的LED灯灭,其他灯亮, 以此类推,循环执行,电路连接如下图所示。 code segment assume cs:code start: mov al,13h ;ICW1,单片使用,上升沿触发 mov dx,300h out dx,al mov al,8;ICW2,中断类型号 mov dx,301h;单片不用设置ICW3 out dx,al mov al,1;ICW4 out dx,al mov ax,0 mov ds,ax lea ax,int0 mov ds:[4*8],ax;送偏移地址 mov ax,cs mov ds:[4*8+2],ax ;送段地址 in al,dx and al,0feh out dx,al mov dx,2f3h mov al,80h out dx,al;8255初始化 mov bl,11111110b mov al,bl mov dx,2f0h;a口输出接LED灯 out dx,al sti repeat:hlt jmp repeat int0 proc rol bl,1 mov al,bl mov dx,2f0h out dx,al
16、(100分) (1)用8255芯片的C口接8个LED发光二极管,利用软件延迟的方法实现 发光二极管右移循环点亮(每次只有1位亮),时间间隔1S。已知 8255A的端口地址从300H-303H。 code segment assume cs:code start:补全程序 code ends end start code segment assume cs:code start: mov al,10000010b mov dx,303h out dx,al mov al,01111111b again: mov bx,1000 delay2:mov cx,374 delay1: pushf popf loop delay1 dec bx jnz delay2 ror al,1 mov dx,302h out dx,al jmp again
d1 db 12h d2 db 34h d3 db 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX mov al,d1 add al,d2
mov d3,al LEA BX,BUF mov ch,al mov cl,4 rol al,cl AND AL,0FH XLAT MOV DL,AL MOV AH,2 INT 21H MOV AL,ch AND AL,0FH XLAT MOV DL,AL MOV AH,2 INT 21H MOV AX,4C00H INT 21H CODE ENDS END START 18、(100分) (1)用一片8255A循环检测K1、K2的状态,控制红、绿、黄三灯的点 亮, 要求: K1闭合,K2闭合时,绿灯亮; K1闭合,K2断开时,红灯亮; K1断开,K2闭合时,黄灯亮; K1断开,K2断开时,绿灯亮。(C口接开关K1、K2,B口接LED 灯) 已知8255A的端口地址为300H~303H,编制初始化程序以及控制程序。 code segment assume cs:code 补全程序 code ends end start code segment assume cs: code
MOV AH,2 INT 21H MOV AL,ch AND AL,0FH XLAT MOV DL,AL MOV AH,2 INT 21H MOV AX,4C00H INT 21H CODE ENDS END START 17、(100分) (1)用一片8255A循环检测K1、K2的状态,控制红、绿、黄三灯的点 亮, 要求: K1闭合,K2闭合时,红灯亮; K1闭合,K2断开时,绿灯亮; K1断开,K2闭合时,黄灯亮; K1断开,K2断开时,红灯亮。(B口接开关K1、K2,A口接 LED灯) 已知8255A的端口地址为2F0H~2F3H,编制初始化程序以及控制程 序。 code segment assume cs:code 补全程序 code ends end start code segment assume cs: code start: mov al,10000010b mov dx,2f3h out dx,al again: mov dx,2f1h in al,dx and al,00000011b
code ends end start 23、(100分)
(1)8255的PA0接一个拨动开关K,8255的C口接8个发光二极管,当开 关向上拨动即(K=0)时,C口所接发光二级管的高4位亮、低4位灭,反之 C口所接发光二级管的高4位灭、低4位亮。已知8255A的端口地址从 300H-303H。 code segment assume cs:code start:补全程序 code ends end start code segment assume cs:code start:mov dx,303h mov al,10010000b out dx,al again:mov dx,300h;a口作输入 in al,dx test al,01H jz l1 mov al,00001111b jmp l2 l1:mov al,11110000B L2: mov dx,302H out dx,al jmp again code ends end start (2) 实现将两个字节数据相加,存放到一个结果单元中,采用查表法 查到其对应的ASCII码值,并在屏幕上显示16进制的结果。 DATA BUF d1 db 12h SEGMENT DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H DB 41H,42H,43H,44H,45H,46H
mov dx,300h mov al,20h;设置OCW2,发送中断结束方式 out dx,al iret ;中断返回 int0 endp code ends end start (2) 编程将D1、D2两个存储单元中的无符号字节数相加,结果放到D3存 储单元(结果不超过255)。 code segment assume cs:code start: mov al,10000000b mov dx,303h out dx,al mov al,01111111b again: mov bx,500 delay2:mov cx,374 delay1: pushf popf loop delay1 dec bx jnz delay2 ror al,1 mov dx,300h out dx,al jmp again
cmp al,00Leabharlann Baidu je l1 cmp al,01h je l2 cmp al,02h je l4 cmp al,03h je l1
l1: mov al,10110110b jmp next l2: mov al,11011011b jmp next l4: mov al,01101101b jmp next next: mov dx,2f0h out dx,al jmp again code ends end start (2) 实现将两个字节数据相加,存放到一个结果单元中,采用查表法查 到其对应的ASCII码值,并在屏幕上显示16进制的结果。 DATA BUF SEGMENT DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H DB 41H,42H,43H,44H,45H,46H
d2 db 34h d3 db 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX mov al,d1 add al,d2 mov d3,al LEA BX,BUF mov ch,al mov cl,4 rol al,cl AND AL,0FH XLAT MOV DL,AL MOV AH,2 INT 21H MOV AL,ch AND AL,0FH XLAT MOV DL,AL MOV AH,2 INT 21H MOV AX,4C00H INT 21H CODE ENDS END START 25、 (100分) (1) 采用查表法实现将两个两位的十六进制数转换为ASCII码并在屏 幕显示,设被转换的两个十六进制数在hex开始的内存单元中。 DATA SEGMENT BUF DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H DB 41H,42H,43H,44H,45H,46H
相关文档
最新文档