1.利用BIOS中断将串行接口初始化为9600波特,8位数据位,1位停止位,偶校验。 2.该程序中数据段定义如下: DSEG SEGMENT STRG DB‘I AM A TEACHER!’,‘$’ MSPA DB 2DUP(?) NUM DB 1,2,3,4,5,6,7,8 DISP DW 2 DSEG ENDS (1)执行下列指令段后 LEA BX,NUM ADD BX,DISP MOV AX,WORD PTR[BX] AX= ______H , BX=_______H (2)执行下列指令段后 XOR BX,BX MOV AX,[DISP] MOV SI,OFFSET NUM ADD BX,WORD PTR[SI] AX=________H ,BX=_______H 3.请按照如下要求对8259A设置初始化命令字:系统中有一片8259A,中断请求信号用电平触发方式;下面要用ICW4设置嵌套及中断结束方式等状态,中断类型码为60H~67H,用特殊全嵌套方式,无缓冲,采用中断自动结束方式。8259A的端口地址为94H、95H。 4.在ADDR单元中存放着16位数Y的地址,请编程将Y中1的个数存入COUNT单元中
时间: 2024-03-01 15:55:29 浏览: 109
1. 利用BIOS中断将串行接口初始化为9600波特,8位数据位,1位停止位,偶校验。
```
MOV AL, 00h ;设置串口COM1
MOV AH, 00h ;设置波特率9600
MOV DX, 3F8h ;设置串口端口地址
MOV BL, 00h ;设置数据位为8位
MOV BH, 01h ;设置停止位为1位
MOV CL, 06h ;设置偶校验
INT 14h ;BIOS中断初始化串口
```
2. 该程序中数据段定义如下:
```
DSEG SEGMENT
STRG DB 'I AM A TEACHER!', '$'
MSPA DB 2DUP ('?')
NUM DB 1, 2, 3, 4, 5, 6, 7, 8
DISP DW 2
DSEG ENDS
```
(1)执行下列指令段后
```
LEA BX, NUM
ADD BX, DISP
MOV AX, WORD PTR[BX]
```
AX=0607H , BX=0006H
(2)执行下列指令段后
```
XOR BX, BX
MOV AX, [DISP]
MOV SI, OFFSET NUM
ADD BX, WORD PTR[SI]
```
AX=0201H ,BX=0009H
3. 请按照如下要求对8259A设置初始化命令字:系统中有一片8259A,中断请求信号用电平触发方式;下面要用ICW4设置嵌套及中断结束方式等状态,中断类型码为60H~67H,用特殊全嵌套方式,无缓冲,采用中断自动结束方式。8259A的端口地址为94H、95H。
```
MOV AL, 11B ;ICW1,边沿触发,级联从片
OUT 094H, AL ;发出ICW1
MOV AL, 60H ;ICW2,主片中断类型码为60H
OUT 095H, AL ;发出ICW2
MOV AL, 04H ;ICW3,主片IR2连接从片
OUT 095H, AL ;发出ICW3
MOV AL, 01H ;ICW4,特殊全嵌套方式,无缓冲,中断自动结束方式
OUT 095H, AL ;发出ICW4
```
4. 在ADDR单元中存放着16位数Y的地址,请编程将Y中1的个数存入COUNT单元中。
```
MOV AX, [ADDR] ;将Y的值读入AX
MOV BX, 0001H ;将BX的值初始化为1
MOV CX, 0000H ;将CX的值初始化为0
LOOP1:
AND AX, BX ;判断AX的最低位是否是1
SHR AX, 1 ;将AX右移一位
ADD CX, AX ;如果最低位是1,增加计数器
CMP AX, 0000H ;如果AX等于0,说明已经统计完毕
JZ EXIT
JMP LOOP1
EXIT:
MOV [COUNT], CX ;将计数器的值存入COUNT
```
阅读全文