MOV AH,4CH
INT 21H ;返回DOS ;求最大最小数子程序名:QZDZXS
;子程序功能:求一组字数据中的最大最小数
;入口参数:数组首地址在SI中,数组个数在CX中 ;出口参数:最大数在ZD中,最小数在ZX中 ;使用寄存器:CX、DX、SI及PSW QZDZXS PROC NEAR PUSH SI PUSH DX
PUSH CX ;保护现场
ZDZX0: MOV DX,[SI] ;取一个数组元素送DX CMP ZD,DX ;AX中内容和DX中内容比较 JNB ZDZX1 ;(ZD)>(DX),转ZDZX1 MOV ZD,DX ;较大数存入ZD
ZDZX1: CMP ZX,DX ;AX中内容和DX中内容比较 JNA ZDZX2 ;(ZX)<(DX),转ZDZX1 MOV ZX,DX ;较小数存入ZX ZDZX2: ADD SI,2 ;数组指针加2调整 LOOP ZDZX0 ;循环控制 POP CX
POP DX
POP SI ;恢复现场 RET ;返回主程序
QZDZXS ENDP ;子程序定义结束 CODE ENDS ;代码段结束 END START ;汇编结束 4.编写程序,计算如下函数的值:
;XT4_5_4.ASM
DATA SEGMENT X DB 15 S DB ? DATA ENDS
CODE SEGMENT
ASSUME DS:DATA, CS:CODE START: MOV AX,DATA MOV DS,AX MOV AL,X TEST AL,80H JZ LL0
SAL AL,1 ;2X JMP LL10 LL0: CMP AL,10 JG LL1
MOV BL,AL
SAL AL,1 ;3X ADD AL,BL JMP LL10
LL1: SAL AL,1 ;4X SAL AL,1 LL10: MOV S,AL MOV AH,4CH
INT 21H ;返回DOS CODE ENDS
END START ;汇编结束
5.从键盘输入一系列字符,以回车符结束,编写程序统计其中非数字字符的个数? ;XT4_5_5.ASM
DATA SEGMENT
NUM DB 0 ;统计变量 DATA ENDS
STACK SEGMENT STACK ;定义堆栈段
DB 100 DUP(?) ;开辟100个存储单元 STACK ENDS ;堆栈段结束
CODE SEGMENT ;定义代码段
ASSUME CS:CODE,SS:STACK,DS:DATA START: MOV AX,DATA MOV DS,AX
LLL: MOV AH,01H ;1号调用,从键盘输入一字符存入AL INT 21H
CMP AL,13 ;与“回车符”的ASCII码比较 JZ L2 ;是“回车符”,转L2(退出) CMP AL,30H ;与“0”的ASCII码比较
JB L1 ;低于“0”的非数字字符ASCII码,转L1(统计)。 CMP AL,39H ;与“9”的ASCII码比较
JA L1 ;高于“9”的非数字字符ASCII码,转L1(统计)。 JMP LLL L1: L2:
INC NUM ;非数字字符,统计;计数增1。 JMP LLL ;转LLL(继续) MOV DL,0AH ;设置换行符 MOV AH,02H ;设置显示功能号 INT 21H ;换行
MOV DL,NUM ;设置显示统计数字(8位二进制数) MOV CL,4
SHR DL,CL ;保留高4位二进制数
OR DL,30H ;转换成ASCII码(高1位十六制数的ASCII) MOV AH,02H ;设置显示功能号
INT 21H ;显示高1位十六制数的ASCII MOV DL,NUM ;设置显示统计数字(8位二进制数) AND DL,0FH ; 保留低4位二进制数
OR DL,30H ;转换成ASCII码(低1位十六制数得ASCII) MOV AH,02H ; 设置显示功能号
INT 21H ; 显示低1位十六制数的ASCII MOV DL,’H’ ; 设置显示’H’ MOV AH,02H ; 设置显示功能号 INT 21H ; 显示’H’
MOV AH,4CH ;设置返回DOS功能码。
INT 21H ;返回DOS
CODE ENDS ;代码段结束 END START ;程序汇编结束
6.编程实现将键盘连续输入的小写字母用大写字母显示出来,小写字母与大写字母之间采用 “-”号分隔,当输入非小写字母时程序停止处理。 ;XT4_5_6.ASM
STACK SEGMENT STACK ;定义堆栈段 DB 100 DUP(?) ;开辟100个存储单元 STACK ENDS ;堆栈段结束 CODE SEGMENT ;定义代码段
ASSUME CS:CODE,SS:STACK
START: MOV AH,01H ;1号调用,从键盘输入一字符存入AL INT 21H ;输入并回显
MOV BL,AL ;保存从键盘输入字符
CMP AL,?a? ;与“a”的ASCII码比较
JB L3 ;低于“a”的ASCII码,转L3(退出)。
CMP AL,?z? ;与“z”的ASCII码比较
JA L3 ;高于“a”的ASCII码,转L3(退出)。
SUB AL,20H ;将AL中字符的ASCII码减去20H变成大写字母。 MOV BL,AL ;保存结果 MOV DL,?-? ;显示字符?-?送DL
MOV AH,02H ;2号调用,在显示器上显示字符?-?。 INT 21H ;显示?-?
MOV DL,BL ;结果(大写字母)送DL。
MOV AH,02H ;2号调用,在显示器上显示DL中的内容(大写字母)。
INT 21H ;显示大写字母
MOV DL,20H ;空格送DL。() L3:
MOV AH,02H ;2号调用,在显示器上显示DL中的内容(大写字母)。 INT 21H ;显示空格(使两结果用空格隔开) JMP START ;不是“回车符”,转START(继续) MOV AH,4CH ;是“回车符”,设置返回DOS功能码。 INT 21H ;返回DOS
CODE ENDS ;代码段结束 END START ;程序汇编结柬 7.在数据段中有一个字节数组,编程统计其中正数的个数放入A单元保存,统计负数的个数放入B单元保存。
;XT4_7.ASM
DATA SEGMENT
ARR DB -13,46,67,0,-34,-90,89,67,0,26 CN EQU $-ARR ;数组长度
A DW ? ;正数个数统计结果变量 B DW ? ;负数个数统计结果变量 DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE START: MOV AX,DATA
MOV DS,AX ;初始化
MOV SI,OFFSET ARR ;数组首地址送SI MOV CX,CN ;数组元素个数送CX L0: MOV DL,[SI] ;取一个数组元素送DX TEST DL,80H ;DX中内容和0比较 JNZ NE0 ;小于0转NE0
INC A ;否则为正数,A内容加1 JMP L1 ;转L1
NE0: INC B ;为负数,B内容加1 L1: ADD SI,1 ;数组指针加1调整 LOOP L0 ;循环控制 MOV AH,4CH
INT 21H ;返回DOS CODE ENDS ;代码段结束 END START ;汇编结束
8.编程实现定义一条宏指令,完成将一位十六进制数转换为ASCII码的操作。 ;XT4_5_8.ASM
; 分析:将AL的低4位(一位十六进制数)转换成ASCII码,并通过AL返回。 H_ASCII MACRO
AND AL,0FH CMP AL,9 JG OR AL,30H JMP L2 L1: OR AL,40H L2: ENDM
5 思考与练习题
一、选择题
1.微机中地址总线的作用是( )。
A.选择存储单元 B.选择信息传输的设备 C.指定存储单元和I/O接口电路地址 D.确定操作对象 2.微机中使用总线结构便于增减外设,同时可以( )。 A.减少信息传输量 B.提高信息传输量
C.减少信息传输线条数 D.增加信息传输线条数
3.可将微处理器、内存储器及I/O接口连接起来的总线是( )。 A.芯片总线 B.外设总线 C.系统总线 D.局部总线 4.CPU与计算机的高速外设进行信息传输采用的总线是( )。 A.芯片总线 B.系统总线 C.局部总线 D.外部设备总线 5.要求传送64位数据信息,应选用的总线是( )。 A.ISA B.I2C C.PCI D.AGP 6.以下不属于USB主要特点的是( )。
A.可以热插拔 B.数据传输快速 C.携带方便 D.可并行处理 二、填空题
1.总线是微机系统中_多个部件之间公用的_一组连线,是系统中各个部件_信息交换的_公共通道,由它构成_芯片、插件或系统之间的_标准信息通路。P116
2.微机总线一般分为_内部总线、系统总线和外部总线_三类。用于插件板一级互连的是_系统总线_;用于设备一级互连的是_外部总线_。P116~117
3.总线宽度是指_可同时传送的二进制数据的位数_;数据传输率是指_在单位时间内总线上
C
C
C D C D
可传送的数据总量_。P120
4.AGP总线是一种_高速图形接口局部总线标准_;主要用于_高速视频或高品质画面的显示_场合。P132
5.USB总线是一种_支持即插即用的新型串行_接口;其主要特点是_使用方便、速度加快、连接灵活、独立供电、支持多媒体_。P133~134
6.IEEE1394是一种_新型的高速串行_总线。主要应用于_超过100Kbit/s的硬盘和视频设备_。P134
三、简答题
1.在微型机系统中采用标准总线的好处有哪些(系统结构简单清晰,便于系统扩充与更新)?P116
2.PCI总线有哪些主要特点[P129(1)~(6)],PCI总线结构与ISA总线结构有什么地方不同(ISA总线属于低端总线[P121];PCI属于高端总线[P121])?
3.什么是AGP总线(高速图形接口局部总线标准)?它有哪些主要特点[P132(1)~(4)],应用在什么场合(高速视频或高品质画面的显示)?P132
4.USB接口有什么特点(使用方便、速度加快、连接灵活、独立供电、支持多媒体)P133~134?USB的数据传送有哪几种方式(控制传输方式、同步传输方式、中断传输方式、批量传输方式)P134?
5.IEEE1394与USB两种串行总线各有什么区别(IEEE1394的设备采用内存编址方法;USB设备采用I/O通道编址方法)P138?
6.简述IC总线的特点和工作原理(P139~141)。
7.讨论在开发和使用微机应用系统时应怎样合理地选择总线,需要注意哪些问题(P141本章小结)。
2
6 思考与练习题
一、选择题
1.存储器的主要作用是( )。
A.存放数据 B.存放程序 C.存放指令 D.存放数据和程序 2.以下存储器中,CPU不能直接访问的是( )。 A.Cache B.RAM C.主存 D.辅存 3.以下属于DRAM特点的是( )。
D D C
A.只能读出 B.只能写入 C.信息需定时刷新 D.不断电信息能长久保存 4.某存储器容量为64K x 16,该存储器的地址线和数据线条数分别为( )。 C A.16,32 B.32,16 C.16,16 D.32,32 5.采用虚拟存储器的目的是( )。
A.提高主存的存取速度 B.提高辅存的存取速度 C.扩大主存的存储空间 D.扩大辅存的存储空间 二、填空题
1.存储容量是指_二进制信息总量_;容量越大,能存储的_二进制信息_越多,系统的处理能力就_越强_。P144
2.RAM的特点是_通过指令可随机地对存储单元进行访问_;根据存储原理可分为_静态RAM_和_动态RAM_,其中要求定时对其进行刷新的是_动态RAM_。P148
3.Cache是一种_高速小容量_的存储器,位于_CPU_和_主存_之间,用来存放_CPU正在使用的指令和数据_;使用Cache的目的是_提高CPU访问存储器的存取速度,减少处理器的等待时间_。P144 P165
C