汇编语言与微机原理 期末复习题整理(大题)
创始人
2024-04-10 04:26:02
0
  1. 写出实现下列计算的指令序列。(假定X、Y、Z、W、R都为有符号字变量)
    Z = 2*(W-X)/(5*Y)
;因为(5*Y)会出现32位变量,32位变量不能作为除数,所以需要改变运算顺序
MOV AX,W   ;AX←W
SUB AX,X     ;AX←W-X
MOV BX,2     
IMUL BX      ;AX←2*(W-X)
IDIV Y       ;AX←2*(W-X)/Y
CWD;除数变为(DX,AX)
MOV CX,5
IDIV CX     ;AX←2*(W-X)/Y/5
MOV Z,AX;Z←AX
  1. 试编程实现:从键盘输入一个字符,若是数字,放入DIGITAL单元,若是英文字母,放入ENGLISH单元,其它字符,则放入OTHER单元。
    我的答案:100分
org 100h.MODEL TINY.STACK 100.DATA 
digital db 0     ;emu8086不支持"db ?"的写法
english db 0
other db 0.CODE
start: mov ax,@datamov ds,axmov es,axmov ah,7;7号功能:等待键盘输入int 21h;键盘功能调用cmp al,30H;0的16进制ascii值为30hjl labeloth;ascii<30h,则为其他字符cmp al,39H;9的16进制ascii值为39hjg label2;ascii>39h,判断是否为字母mov digital,aljmp exit;多分支类型,跳转
label2:cmp al,41H;'A'的16进制ascii值为41hjl labeloth;不是数字而且ascii值小于41hcmp al,5AH;'Z'的16进制ascii值为5ahjg label3;ascii值>5ah,判断是否可能为小写字母mov english,aljmp exit
label3:cmp al,61H;'a'的ascii值为61Hjl labeloth;不是小写字母cmp al,7AH;'z'的ascii值为7ahjg labeloth;不是小写字母mov english,aljmp exit
labeloth:mov other,al
exit:             jmp $end start
ret
  1. 某年级参加英语4级考试的有250名学生,试编写一程序完成60-69,70-79,80-89,90-100四个分数段的统计工作,要求用子程序完成对应分数段的人数统计工作。
org 100h
.MODEL TINY
.STACK 100
.DATA 
arr db 58,98,70,50,55,69,64,80,81,74,87,84,94,61,56,68,61,89,87,81,69,68,61,91,73,62,63,77,72,54,74,75,88,61,60,67,90,77,92,75,99,51,72,79,99,94,88,96,52,66,96,70,53,96,68,55,89,71,75,87,91,87,89,95,68,83,79,56,92,87,74,74,71,51,67,52,91,62,76,76,74,57,95,92,90,73,57,56,57,84,85,65,87,66,91,66,84,71,81,72,77,63,73,91,54,99,62,99,97,58,54,99,97,78,61,74,67,92,92,66,96,66,60,81,50,52,63,52,53,85,66,97,73,67,71,93,100,85,56,88,55,57,74,94,66,88,65,98,93,64,62,74,58,70,84,59,96,54,52,78,87,97,56,94,90,78,52,98,70,74,76,89,69,68,84,83,77,92,90,100,76,66,93,51,75,88,94,86,94,97,92,81,99,51,61,59,50,72,53,95,92,52,89,60,61,55,100,90,84,61,59,98,57,89,63,79,88,82,51,88,92,65,67,93,91,60,66,57,62,65,73,75,56,56,95,70,53,60,91,75,60,66,70,94,79,78,50,85,67,51;//随机生成250个数据
acnt dw 0;//90-100人数
bcnt dw 0;//80-89人数 
ccnt dw 0;//70-79人数
dcnt dw 0;//60-69人数
.CODE
start: mov ax,@data
mov ds,ax
mov es,ax    
lea bx,arr
mov cx,250   
call calcacnt
mov acnt,ax;90-100人数
call calcbcnt
mov bcnt,ax;80-89人数
call calcccnt
mov ccnt,ax;70-79人数
call calcdcnt
mov dcnt,ax;60-69人数
int 21H
;子程序名:calcacnt
;功能:求90-100人数
;入口参数cx=数组元素个数
;ds:bx=数组段地址:偏移地址
;出口参数:ax=数组元素和
;影响寄存器:ax
calcacnt proc nearpush cxpush bx;保护现场 xor ax,axlea bx,arrmov cx,250       nexta:cmp [bx],90jl exita:cmp [bx],100jg exita:inc axexita:       inc bxloop nextapop bxpop cxret
calcacnt endp
;子程序名:calcbcnt
;功能:求80-89人数
;入口参数cx=数组元素个数
;ds:bx=数组段地址:偏移地址
;出口参数:ax=数组元素和
;影响寄存器:ax
calcbcnt proc nearpush cxpush bx;保护现场xor ax,axlea bx,arrmov cx,250       nextb:cmp [bx],80jl exitb:cmp [bx],89jg exitb:inc axexitb:        inc bxloop nextbpop bxpop cxret
calcbcnt endp        
;子程序名:calcccnt
;功能:求70-79人数
;入口参数cx=数组元素个数
;ds:bx=数组段地址:偏移地址
;出口参数:ax=数组元素和
;影响寄存器:ax
calcccnt proc nearpush cxpush bx;保护现场     xor ax,axlea bx,arrmov cx,250       nextc:cmp [bx],70jl exitc:cmp [bx],79jg exitc:inc axexitc:     inc bxloop nextcpop bxpop cxret
calcccnt endp 
;子程序名:calcdcnt
;功能:求60-69人数
;入口参数cx=数组元素个数
;ds:bx=数组段地址:偏移地址
;出口参数:ax=数组元素和
;影响寄存器:ax
calcdcnt proc nearpush cxpush bx;保护现场xor ax,axlea bx,arrmov cx,250       nextd:cmp [bx],60jl exitd:cmp [bx],69jg exitd:inc axexitd:            inc bxloop nextdpop bxpop cxret
calcdcnt endp
code ends
end start

4.试编制程序:以查询方式输入100个字节数据存入内存 INBUF 区。

org 100h.MODEL TINY.STACK 100.DATA
inbuf db 100 DUP(?);inbuf区存字节数据.CODE
start:mov ax,@datamov ds,axmov es,axmov bx,offset inbuf;bx指向内存inbuf区mov cx,100;循环次数100
status:mov dx,102hin al,dxtest al,80hjz statusmov dx,100hin al,dxmov [bx],al;al数据存入inbufinc bx;bx指向下一数据loop status mov ax,4c00hjmp $end start
ret
  1. 试编制程序:以查询方式输出内存 OUTBUF 区以‘-1’结束的一串字节数据。
    .MODEL TINY.STACK 100.DATA
outbuf db 127,-128,0,1,-1.CODE
start:mov ax,@datamov ds,axmov es,axmov bx,offset outbuf;bx指向outbuf区
status:mov dx,102hin al,dxtest al,80hjnz statusmov dx,100hmov al,[bx]out dx,al;向输出端口写入数据inc bx;bx指向数组下一个数据cmp al,-1;条件循环jnz statusmov ax,4c00hjmp $end start
ret
  1. 仔细读下图给出的应用系统电路图, 8255用作系统总线和ADC0809之间的接口电路,通过8254计数通道0输出周期为1ms的信号定时启动对ADC0809模拟通道IN4的A/D转换,计数通道1输出的信号用作ADC0809所需的500KHz时钟信号,A/D转换结束后通过8259的IR2向CPU发送中断请求。如果8259已经完成初始化,全嵌套、非自动中断结束方式,中断类型号为80H~87H。请完成以下几个问题:
    (1) 写出对8255A初始化的程序段(包括设定8255的方式选择控制字、选择ADC0809的模拟通道IN4,输出8254所需要的有效GATE信号)。
    (2) 写出对8254初始化的程序段,输出A/D转换所需要的两个时钟信号。
    (3) A/D转换结束后通过8259的IR2向CPU发送中断请求,产生的中断的类型号是多少?该中断源的中断向量放在内存中的什么位置?如果中断服务程序的入口地址为3210H:7880H,画出中断向量表中的相关存储空间内容。
    (4) 根据(5)中编写的中断服务程序,完成中断向量表的初始化,并开放8259的IR2。
    (5) 编写完整的中断处理程序INTPROC,将模拟通道IN4的一次A/D转换结果读入内存字节变量Temp。
    在这里插入图片描述
    (1)
;8255A口工作方式0输入,B口工作方式0输出,C口输出
;A口60H,B口62H,C口64H,控制口66H
mov al,10010000B
mov dx,66H
out dx,al
mov al,04H
mov dx,62H
out dx,al
mov al,01H
mov dx,64H
out dx,al

(2)

;8254的0口在方式2,5*10^6/(1*10^3)=5000=1388H,地址40H
;8254的1口在方式3,5*10^6/(500*10^3)=10H,地址42H
mov al,00110100B
mov dx,46H
out dx,al
mov al,88H
mov dx,40H
out dx,al
mov al,13H
out dx,al
mov al,01010110B
mov dx,46H
out dx,al
mov al,0AH
mov dx,42H
out dx,al
ret

(3)
产生中断类型号82H,中断向量存放在中断向量表

0208H80HIP
0209H78HIP
020AH10HCS
020BH32HCS

(4)

mov ax,0
mov es,ax
mov bx,82H*4
mov ax,offset intproc
mov es:[bx],ax
mov ax,seg intproc
mov es:[bx+2],ax
in al,22H
and al,11111011B
mov dx,22H
out dx,al

(5)

intproc proc farpush axpush dspush dxstimov ax,seg tempmov ds,axmov dx,60Hin al,dxmov temp,alin al,22Hor al,00000100Bout 22H,alclimov al,20Hout 20H,alpop dxpop dspop axiret

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...