微机原理与接口技术何小海版

发布时间:2020-07-09 00:45:39

如上

网友回答

8086/8088指令系统与寻址方式习题
  3 8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,
  BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。
  (1)MOV BX,12 ;目标操作数为寄存器寻址
  (2)MOV [BX],12 ;目标操作数为寄存器间址 PA=10300H
  (3)MOV ES:[SI],AX ;目标操作数为寄存器间址 PA=20200H
  (4)MOV VAR,8 ;目标操作数为存储器直接寻址 PA=10600H
  (5)MOV [BX][SI],AX ;目标操作数为基址加变址寻址 PA=10500H
  (6)MOV 6[BP][SI],AL ;目标操作数为相对的基址加变址寻址 PA=12306H
  (7)MOV [1000H],DX ;目标操作数为存储器直接寻址 PA=11000H
  (8)MOV 6[BX],CX ;目标操作数为寄存器相对寻址 PA=10306H
  (9)MOV VAR+5,AX ;目标操作数为存储器直接寻址 PA=10605H
  3.4 下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。
  (1)XCHG CS,AX ;错,CS不能参与交换
  (2)MOV [BX],[1000] ;错,存储器之不能交换
  (3)XCHG BX,IP ;错,IP不能参与交换
  (4)PUSH CS
  (5)POP CS ;错,不能将数据弹到CS中
  (6)IN BX,DX ;输入/输出只能通过AL/AX
  (7)MOV BYTE[BX],1000 ;1000大于255,不能装入字节单元
  (8)MOV CS,[1000] ;CS不能作为目标寄存器
  (9)MOV BX,OFFSET VAR[SI] ;OFFSET只能取变量的偏移地址
  (10)MOV AX,[SI][DI] ;SI、DI不能成为基址加变址
  (11)MOV COUNT[BX][SI],ES:AX ;AX是寄存器,不能加段前缀
  3.7 设当前 SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行 PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么?
  当前栈顶的地址=2FF00H
  当执行PUSH BX 指令后,栈顶地址=2FEFEH
  (2FEFEH)=57H
  (2FEFFH)=34H
  3.8 设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。
  (1) SHR DX,1 ;DX=3C62H CF=1
  (2) SAR DX,CL ;DX=03C6H CF=0
  (3) SHL DX,CL ;DX=18A0H CF=1
  (4) ROR DX,CL ;DX=2BC6H CF=0
  (5) RCL DX,CL ;DX=18B7H CF=1
  (6) RCR DH,1 ;DX=BCC5H CF=0;
  3.9 设AX=0A69H,VALUE字变量中存放的内容为1927H,写出下列各条指令执行后寄存器和CF、ZF、OF、SF、PF的值。
  AX CF ZF OF SF PF
  (1)XOR AX,VALUE ; 134EH 0 0 0 0 1
  (2)AND AX,VALUE ; 0821H 0 0 0 0 1
  (3)SUB AX,VALUE ; F142H 1 0 0 1 1
  (4)CMP AX,VALUE ; 0A69H 1 0 0 1 1
  (5)NOT AX ; F596H X X X X X
  (6)TEST AX,VALUE ; 0A69H 0 0 0 0 1
  3.10 设AX和BX中是符号数,CX和DX是无符号数,请分别为下列各项确定CMP和条件转移指令。
  CX值超过DX转移。
  AX未超过BX转移。
  DX为0转移。
  CX值等于小于DX转移。
  (1) CMP CX,DX
  JA NEXT
  (2) CMP AX,BX
  JLE NEXT
  (3) CMP DX,0
  JZ NEXT
  (4) CMP CX,DX
  JBE NEXT
  阅读分析下列指令序列:
  ADD AX,BX
  JNO L1
  JNC L2
  SUB AX,BX
  JNC L3
  JNO L4
  JMP L5
  若AX和BX的初值分别为以下5种情况,则执行该指令序列后,程序将分别转向何处(L1~L5中的一个)。
  AX=13C6H, BX=80DCH
  AX=0B568H,BX=54B7H
  AX=42C8H, BX=608DH
  AX=0D023H,BX=9FD0H
  AX=9FD0H, BX=0D023H
  转L1
  转L1
  转L2
  转L5
  转L5
  汇编语言程序设计习题
  4.5 画出下列语句中的数据在存储器中的存储情况。
  VARB DB 34,34H,'GOOD',2 DUP(1,2 DUP(0))
  VARW DW 5678H,'CD',$+2,2 DUP(100)
  VARC EQU 12
  22H
  34H
  'G'
  'O'
  'O'
  'D'
  1
  0
  0
  1
  0
  0
  78H
  56H
  'D'
  'C'
  12H
  00H
  64H
  00
  64H
  VARB
  VARW
  4.6 按下列要求,写出各数据定义语句。
  DB1为10H个重复的字节数据序列:1,2,5个3,4。
  DB2为字符串'STUDENTS'
  DB3为十六进制数序列:12H,ABCDH
  用等值语句给符号COUNT赋以DB1数据区所占字节数,该语句写在最后。
  DB1 DB 16 DUP(1,2,5 DUP(3,4))
  DB2 DB 'STUDENTS'
  DB3 DW 12H,0ABCDH
  COUNT EQU DB2-DB1
  4.8 对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?
  PREP DB ?
  TABA DW 5 DUP(?)
  TABB DB 'NEXT'
  TABC DD 12345678H
  (1)MOV AX, TYPE PREP ;AX=1
  (2)MOV AX, TYPE TABA ;AX=2
  (3)MOV AX, LENGTH TABA ;AX=5
  (4)MOV AX, SIZE TABA ;AX=10
  (5)MOV AX, LENGTH TABB ;AX=1
  (6)MOV DX, SIZE TABC ;AX=4
  4.10 若自STRING单元开始存放有一个字符串(以字符'$'结束);
  编程统计该字符串长度(不包含 $ 字符,并假设长度为两字节)。
  把字符串长度放在STRING 单元,把整个字符串往下移两个单元。
  程序段为:
  (1) MOV SI,OFFSET STRING
  XOR BX,BX
  CONT:MOV AL,[SI]
  CMP AL,'$'
  JZ NEXT
  INC BX
  INC SI
  JMP CONT
  NEXT: MOV AH,4CH
  INT 21H
  (2) STRING DB '…………. $'
  COUNT EQU $-STRING
  :
  MOV SI,OFFSET STRING
  MOV CX,COUNT
  ADD SI,CX
  CONT: DEC SI
  MOV AL,[SI]
  MOV [SI+2],AL]
  LOOP CONT
  MOV CX,COUNT
  MOV STRING,CX
  MOV AH,4CH
  INT 21H
  4.11 将字符串STRING中的'&' 字符用空格代替,字符串STRING"The data is FEB&03"。
  程序为:
  DATA SEGMENT
  STRING DB 'The data is FEB&03'
  COUNT EQU $-STRING
  DATA ENDS
  CODE SEGMENT
  ASSUME CS:CODE,DS:DATA
  START: MOV AX,DATA
  MOV DS,AX
  MOV SI,OFFSET STRING
  MOV CX,COUNT
  MOV AL,'$'
  CONT: CMP AL,[SI]
  JNZ NEXT
  MOV BYTE PTR[SI],' '
  NEXT: INC SI
  LOOP CONT
  MOV AH,4CH
  INT 21H
  CODE ENDS
  END START
  4.16 键盘输入十个学生的成绩,试编制一个程序统计69~69分,70~79分,80~89分,90~99分及100分的人数,分别存放到S6,S7,S8,S9及S10单元中。
  程序为:
  DATA SEGMENT
  BUF DB 10 DUP(?)
  S6 DB ?
  S7 DB ?
  S8 DB ?
  S9 DB ?
  S10 DB ?
  DATA ENDS
  CODE SEGMENT
  ASSUME CS:CODE,DS:DATA
  START: MOV AX,DATA
  MOV DS,AX
  MOV SI,OFFSET S6
  XOR AL,AL
  MOV CX,0504H
  CONT: MOV [SI],AL
  INC SI
  LOOP CONT
  MOV CX,10
  MOV SI,OFFSET BUF
  CONT1: MOV AH,1
  INT 21H
  SHL AL,CL
  MOV BL,AL
  MOV AH,1
  INT 21H
  SUB AL,30H
  OR AL,BL
  MOV [SI],AL
  CMP AL,70H
  JAE NEXT1
  INC BYTE PTR S6
  NEXT1: CMP AL,80H
  JAE NEXT2
  INC BYTE PTR S7
  NEXT2: CMP AL,90H
  JAE NEXT3
  INC BYTE PTR S8
  NEXT3: CMP AL,99H
  JA NEXT4
  INC BYTE PTR S9
  JMP NEXT5
  NEXT4; INC BYTE PTR S10
  NEXT5: INC SI
  LOOP CONT1
  MOV AH,4CH
  INT 21H
  CODE ENDS
  END START
  第7章 基本输入/输出接口习题
  7.4 现有一输入设备,其数据端口地址为FFE0H,状态端口地址为FFE2H,当其D0为1时表明输入数据准备好。试采用查询方式,编程实现从该设备读取100个字节数据并保存到2000H:2000H开始的内存中。
  程序段为:
  MOV AX,2000H
  MOV DS,AX
  MOV SI,2000H
  MOV CX,100
  CONT: MOV DX,0FFE2H
  CONT1: IN AL,DX
  TEST AL,01
  JZ CONT1
  MOV DX,0FFE0H
  IN AL,DX
  MOV [SI],AL
  INC SI
  LOOP CONT
  MOV AH,4CH
  INT 21H
  7.5 硬件如图7.5所示,试编程实现:S0控制8个发光二极管1亮7暗,S1控制8个 8个发光二极管7亮1暗,S2控制某一亮点(或暗点)以一定时间间隔循环向左移动,S3控制某一亮点(或暗点)以一定时间间隔循环向右移动,两个或两个以上开关闭合,则结束程序。
  程序段为:(省略伪指令)
  BUF1 DB 01H
  BUF2 DB 80H
  …
  MOV DX,200H
  AGAIN: IN AL,DX
  XOR BL,BL
  MOV CX,8
  CONT: ROR AL,1
  JNC NEXT
  INC BL
  NEXT: LOOP CONT
  CMP BL,2
  JAE EXIT
  CMP AL,0FEH
  JZ 1L7A
  CMP AL,0FD
  JZ 1A7L
  CMP AL,0FBH
  JZ ZSHL
  CMP AL,0F7H
  JZ YSHR
  1L7A: MOV AL,80H
  OUT DX,AL
  JMP AGAIN
  7A7L:MOV AL,7F
  OUT DX,AL
  JMP AGAIN
  ZSHL:MOV AL,BUF1
  ROL AL,1
  MOV BUF1,AL
  OUT DX,AL
  CALL D500MS
  JMP AGAIN
  YSHR:MOV AL,BUF2
  ROR AL,1
  MOV BUF1,AL
  OUT DX,AL
  CALL D500MS
  JMP AGAIN
  EXIT:MOV AH,4CH
  INT 21H
  第8章 中断习题
  8.2 已知中断向量表表中地址0020H ~ 0023H的单元中依次是40H,00H,00H,01H,
  并知INT 08H指令本身所在的地址为9000H:00A0H。若SP=0100H,SS=0300H,标志寄存器内容为0240H,试指出在执行INT 08H指令,刚进入它的中断服务程序时,SP,SS,IP,CS和堆栈顶上三个字的内容(用图表示)。
  执行后 SS=0300H SP=00FAH
  CS=0100H IP=0040H ,堆栈顶上三个字的内容如下所示:
  栈区
  A2H
  00H
  00H
  90H
  40H
  02H
  XX
  00FAH
  00FCH
  执行后:0300H:00FEH
  初始: 0300H:01000H
  8.3 某一用户中断源的中断类型号为40H,其中断服务程序名为INTR40,请用两种不同的方法设置它的中断向量。
  方法一: MOV AX,0
  MOV DS,AX
  MOV AX,OFFSET INTR40
  MOV [00C0H],AX
  MOV AX,SEG INTR40
  MOV [00C2H],AX
  方法二: MOV AX,0
  MOV ES,AX
  MOV DI,40H*4
  CLD
  MOV AX,OFFSET INTR40
  STOSW
  MOV AX,SEG INTR40
  STOSW
  8.5 某一8086CPU系统中,采用一片8259A进行中断管理。设8259A工作在全嵌套方式,发送EIO命令结束中断,边沿触发方式,IR0对应的中断向量号为90H,8259A在系统中的端口地址为FFDCH(A0=0)和FFDDH(A0=1),试编写8259A的初始化程序段。
  初试化程序段为:
  MOV DX,0FFDCH
  MOV AL,13H
  OUT DX,AL
  INC DX
  INC DX
  MOV AL,90H
  OUT DX,AL
  MOV AL,01
  OUT DX,AL
  可编程接口芯片及应用习题
  9.1 试按如下要求分别编写初始化程序,已知计数器0 ~ 2和控制字寄存器的端口地址依次为204H ~ 207H。
  (1)使计数器1工作在方式0,仅用8位二进制计数,计数初值为128。
  (2)使计数器0工作在方式1,按BCD码计数,计数值为3000。
  (3)使计数器2工作在方式2,按二进制计数,计数值为02F0H。
  初始化程序为:
  MOV DX,207H
  MOV AL,50H
  OUT DX,AL
  MOV DX,205H
  MOV AL,80H
  OUT DX,AL
  MOV DX,207H
  MOV AL,23H
  OUT DX,AL
  MOV DX,204H
  MOV AL,30H
  OUT DX,AL
  MOV DX,207H
  MOV AL,0B4H
  OUT DX,AL
  MOV DX,206H
  MOV AL,0F0H
  OUT DX,AL
  MOV AL,02
  OUT DX,AL
  9.2 硬件如题9.2图,利用PC内部8253定时器0,并用中断方式实现每隔1s使发光二极管亮暗交替显示。(PC内部8253输入时钟频率为1.1932MHz,8253定时器0端口地址为40H,控制寄存器端口地址为43H。Y0为350H)。
  定时器计数值=1.1932MHz÷5=32864=83D5H
  软件计数值:50
  程序为:(硬件图见教材P345题9.2图)
  MOV AL,34H
  OUT 43H,AL
  MOV AL,0D5H
  OUT 40H,AL
  MOV AL,83H
  OUT 40H,AL
  MOV BL,50
  ┇
  T0中断服务程序为:
  DEC BL
  JNZ EXIT1
  MOV BL,50
  MOV AL,BUF
  NOT AL
  MOV BUF,AL
  MOV DX,350H
  OUT DX,AL
  EXIT1:MOV AL,20H
  OUT 20H,AL;(设8259A的端口地址为20H,21H)
  IRET
  9.3 硬件如题 9.3图,8253采用方式0,BCD码计数方式,初始值为1000,每按一次按钮S,计数器值减1。试编程实现显示8253当前计数值,直至计数值为0。8253端口地址范围为80H ~ 83H。
  (略。在何处显示---屏幕/LED/液晶?)
  9.4 图9.4为一简化的键盘/数码管显示接口电路,假设端口线a' ~ h'及1、2脚送"1"电平,可使显示点亮并能实现扫描,试问U1、U2及数码显示器的选用。
  (1)U1为 (同相驱动器 / 反相驱动器)。
  (2)U2为 (同相驱动器 / 反相驱动器)。
  (3)数码显示器为 (共阴 / 共阳)数码管。
  (4)若A键闭合,则端口线3,4的电平为 。
  图9.4见教材P346
  选用同相驱动器
  选用反相驱动器
  选用共阴数码管
  若A键闭合,则端口线3,4的电平为0,1
  9.5 硬件如题 9.5图,试编程实现循环检测S0、S1,当S0按下,数码管显示0,当S1按下,数码管显示1,S0、S1同时按下,则结束程序。8255的端口地址范围为80H83H。
  程序为:
  MOV AL,82H
  OUT 83H,AL
  AGAIN: IN AL,81H
  TEST AL,03
  JZ EXIT
  TEST AL,01
  JZ NEXT
  MOV AL,3FH
  OUT 80H,AL
  JMP AGAIN
  NEXT: TEST AL,02
  JZ NEXT1
  MOV AL,06
  OUT 80H,AL
  JMP AGAIN
  NEXT1:MOV AL,00
  OUT 80H,AL
  JMP AGAIN
  EXIT: MOV AH,4CH
  INT 21H
  第10章 串行通信习题
  10.6 设异步传输时,每个字符对应一个起始位,7个信息位,1个奇偶校验位和一个停止位,如果波特率为9600,每秒能传输的最大字符数为多少个?
  字符数=9600位 / 秒÷10位 / 字符=960(字符 / 秒)
  10.13 要求8251A工作于异步方式,波特率系数为16,字符长度为7位,奇校验,2个停止位。工作状态要求:复位出错标志,使请求发送信号RTS有效,使数据终端准备好信号DTR有效,发送允许TxEN有效,接受允许RxE有效。设8251A的两个端口地址分别为0C0H和0C2H,试完成初始化编程。
  初始化程序为:
  MOV AL,11011010B (DAH)
  OUT 0C2H,AL
  MOV AL,00110111B (37H)
  OUT 0C2H,AL
  第11章 模数、数模转换习题
  11.3 某8086系统中,A/D转换器ADC0809只使用一个模拟量输入通道,试设计其接口电路,并编写子程序。子程序的功能是启动A/D转换,并以查询方式读入一个采样数据放在寄存器DL中。
  设所设计的A/D转换器接口电路如下:
  采样程序为:
  CYSUBR PROC
  OUT 50H,AL
  NOP
  NOP
  WAIT1: IN AL,51H
  TEST AL,01
  JZ WAIT1
  IN AL,50H
  MOV DL,AL
  RET
  CYSUBR ENDP
  11.4 某8086系统中,由ADC0809构成A / D转换器,通过8255与CPU接口,如题11.4图所示。试编写程序,以查询的方式巡回采样8个模拟量输入通道,每个通道16次。采样数据存放在内存中。
  题11.4图
  程序段为:
  MOV AL,10000001B(81H)
  MOV DX,0FFDBH
  OUT DX,AL
  LOP0: MOV DI,OFFSET BUF
  MOV BL,0
  LOP1: MOV CX,16
  MOV AL,BL
  MOV DX,0FFD8
  OUT DX,AL
  CONT: MOV DX,0FFCAH
  MOV AL,0C0H
  OUT DX,AL
  NOP
  NOP
  LPO2: IN AL,DX
  TEST AL,01
  JZ LOP2
  DEC DX
  IN AL,DX
  MOV [DI] ,AL
  INC DI
  LOOP CONT
  INC BL
  CMP BL,8
  JNZ LOP1
  ┇
  JMP LOP0

网友回答

本书有三个主要特点1.将微机原理与接口技术两大部分有机地结合在一起,避免了这两部分独立设课,造成学时过多、交叉重复的问题。书中既重视基本概念的阐述,又突出了工程应用,使之在系统性和实用性上有较好的结合。
2.重视基础知识的讲解,比如在CPU芯片方面,就着重以8088/8086为主,有利于在学习中掌握主要的内容,形成较为清晰的概念;同时书中也介绍了计算机系统的新的发展情况和趋势,便于读者的学习和应用。
3.注意培养学生的实际动手能力,书中提供了丰富的例题和较为典型的习题,并附上了实验内容,这有利于学生的学习和提高。
本书可作为电子集信息、电气信息、计算机技术专业的本科生教材;也可作为其他非电类专业的本科生教材(将部分章节作为选讲内容);也可供研究生和工程技术人员参考。

网友回答

严华和那几个老师都没有给答案,你只有找别人的书或者作业看看 答案补充 你是哪个老师嘛

网友回答

《信号与系统》奥本海姆著刘树棠译西南交通大学出版社;《信息、信号与...答:与系统》陈元亨等编,四川大学出版社2003年;《微机原理与接口技术》何小海著科学...2011-04-02 信号与系统 奥本海姆第二版 谁有奥本海姆 的信号与系统第二版......
以上问题属网友观点,不代表本站立场,仅供参考!