100/(25+2)=19 ⑶ (ALPHA+2)*BETA-2
(100+2)*25=2548 ⑷ (BETA/3) MOD 5 (25/3) MOD 5=3
⑸ (ALPHA+3)*(BETA MOD GAMMA) (100+3)*(25 MOD 2)=103 ⑹ ALPHA GE GAMMA 100 GZ GAMMA=0FFFFH ⑺ BETA AND 7
25 AND 7=1 ⑻ GAMMA OR 3 2 OR 3=3
4.9 对于下面的数据定义,三条MOV指令分别汇编成什么?(可用立即数方式表示) TABLEA DW 10 DUP(?) TABLEB DB 10 DUP(?) TABLEC DB ’1234’ ┇
MOV AX,LENGTH TABLEA MOV BL,LENGTH TABLEB MOV CL,LENGTH TABLEC 【解】: MOV AX,LENGTH TABLEA MOV AX, OOOAH MOV BL,LENGTH TABLEB MOV BL, 0AH MOV CL,LENGTH TABLEC MOV CL, O1H
4.10 对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的容是什么? FLDB DB ?
TABLEA DW 20 DUP(?) TABLEB DB ‘ABCD’
⑴ MOV AX,TYPE FLDB ⑵ MOV AX,TYPE TABLEA ⑶ MOV CX,LENGTH TABLEA ⑷ MOV DX,SIZE TABLEA ⑸ MOV CX,LENGTH TABLEB 【解】:(1) MOV AX,TYPE FLDB (AX)= 1 (2) MOV AX,TYPE TABLEA (AX)= 2 (3) MOV CX,LENGTH TABLEA (CX)= 20 (4) MOV DX,SIZE TABLEA (DX)= 40 (5) MOV CX,LENGTH TABLEB (CX)= 1
8.1 解释下列概念:
中断DMA,中断源,中断向量中断向量表,不可屏蔽中断,通道FCB,中断嵌套,文件标记中断入口,可屏蔽中断 【解】:答:⑴ 当进程要求设备输入数据时,CPU把准备存放输入数据的存起始地址以及要传送的字节数分别送入DMA控制器中的存地址寄存器和传送字节计数器。
⑵ 发出数据传输要求的进行进入等待状态。此时正在执行的CPU指令被暂时挂起。进
程调度程序调度其他进程占据CPU。
⑶ 输入设备不断地窃取CPU工作周期,将数据缓冲寄存器中的数据源源不断地写入存,直到所要求的字节全部传送完毕。
⑷ DMA控制器在传送完所有字节时,通过中断请求线发出中断信号。CPU在接收到中断信号后,转入中断处理程序进行后续处理。
⑸ 中断处理结束后,CPU返回到被中断的进程中,或切换到新的进程上下文环境中,继续执行。
中断源:引起中断的事件称为中断源。
中断向量表:每种中断都给安排一个中断类型号。80x86中断系统能处理256种类型的中断,类型号为0H~0FFH。如图8.3所示的中断源,系统时钟的中断类型为08,键盘为09,软中断中的除法错误的中断类型为0等。每种类型的中断都由相应的中断处理程序来处理,中断向量表就是各类型中断处理程序的入口地址表。
中断嵌套:正在运行的中断处理程序,又被其他中断源中断,这种情况叫做中断嵌套。
中断就是CPU在执行当前程序时由于外部事件引起CPU暂时停止当前正在执行的程序而转向执行请求CPU暂时停止的外部事件的服务程序,该程序处理完后又返回继续执行被停止的程序;中断向量是中断处理子程序的入口地址;地址围是00000H-003FFH。
实验一 系统认识实验
一.实验目的
掌握TDN86/88教学实验系统的基本操作。
二.实验设备
TDN86/88教学实验系统一台。
三.实验容及步骤
1. 系统认识实验(1) (1)程序的输入与修改
从3500H存单元开始建立0-15共16个数据。
实验步骤:
a. 使用串行通讯电缆将实验系统与PC机相连。 b. 开启实验系统。
c. 在系统软件所在目录(默认为C:\\TANGDU\\W8688)下运行文件WMD86.EXE进入集成操作
软件环境,打开文件菜单选择新建,即可开始输入源程序。 d. 输入程序后,在文件菜单中选择保存程序,注意文件名的格式,扩展文件名必须为*.ASM,
例:ABC.ASM。
e. 在编译菜单中选择汇编(CTRL+F2)对源程序进行汇编,若源程序没有错误生成目标文
件*.OBJ,若源程序中有错误则返回错误信息,根据错误信息对源程序进行修改后再进
行汇编。
f. 汇编无误后,在编译菜单中选择(CTRL+F3)对汇编生成的*.OBJ目标文件进行,信息显
示于屏幕上,如没有错误,生成相应的可执行文件*.EXE。
g. 在窗口菜单中选择调试(CTRL+1)打开调试窗口,出现系统提示符“>”后选择菜单中
的装入程序,选择相应的*.EXE文件,填入程序段地址与偏移量(默认段地址0000,偏移量2000,一般不用修改),确定后PC开始将程序从磁盘装入到教学实验系统存,提示装载完毕后使用U命令进行反汇编,检查程序是否正确装入。U命令输入格式为U0000:2000。
h. 当发现源程序输入错误或需要调整时,在调试窗口下可用A命令来修改,如修改2000
句为MOV DI,3500的操作如下:
显示信息 > 0000:2000 0000:2003 > A2000↙ MOV DI,3500↙ ↙ 键入信息
(2)运行程序
系统提供了单步运行、断点运行、连续运行等方式,具体操作如下:
a. 单步运行:在“>”提示符下输入T↙或点击菜单中的单步运行执行,每运行一条指令后
会显示下一条待执行指令并显示变化寄存器的容,重复T↙可一步一步运行直至程序结束。
b. 连续运行:在“>”提示符下输入G=0000:2000↙(在系统默认段址CS=0000情况下
可直接输入G=2000↙)可连续运行程序,在运行过程中,可通过CTRL+BREAK或点击菜单中的停止来终止程序运行。
c. 断点运行:在程序中可用B命令定义断点,系统规定最多定义10个断点,例如:
显示信息 > [0:] [1:] > B↙ 2009↙ ↙ 键入信息
上例中定义了2009地址为断点,输入GB=0000:2000↙程序连续运行至断点时,程序中断并显示当前各寄存器容。GB是G命令的扩充,表示含断点连续运行程序,断点仅当系统复位时清除。 (3)存单元的容显示:
使用D0000:3500↙可查看3500H-350FH单元中的容是否为0-15共16个数。 (4)存单元容的修改:
若要修改某一单元容,可进行如下操作,其中,“空格”键用于向待编辑单元的高地址方向移动地址,而“-”键则向反方向移动地址;用↙来确认输入,退出E命令。
显示信息 > 0000:3500 00_ 0000:3501 01_ 0000:3502 02_ 0000:3501 01_ > E3500↙ 01 space Space - ↙ 键入信息
2. 系统操作练习(2)
将存3500H单元开始的0-15共16个数传递到3600H单元开始的数据区中。
实验步骤:
(1)输入程序并检查无误,经汇编、连接后装入系统。
(2)E3500↙,在3500-3510单元中分别送入00、01、02…。
(3)G=0000:2000↙,运行程序,按CTRL+BREAK中断,返回监控。 (4)D3600↙,显示结果:3600 00 01 02 …。