用BIOS的中断调用作定时控制。要求每隔1.1s从键盘读一个字符并将该字符的ASCll码送入内存缓冲区,共读入10字符(最后一个字符为$,以便显示)
正确答案:
源程序如下:
DATASEGMENT
CHARDB10DUP(?)
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
MAINPROCPAR
PUSHDS
XORAX,AX
PUSHAX
MOVAX,DATA
MOVDS,AX
START:LEABX,CHAR;指向存储区
MOVCX,10;设计数
STI;开中断
LOPI:MOVAH,1
PUSHCX
MOVCX,0;设时间计数器为0
MOVDX,0
INT1AH
LOPZ:MOVAX,0;读时间计数值
INT1AH
CMPDL,20
JNZLOPZ
MOVAH,0;从键盘接收字符(以$结束)
INT16H
MOV[BX],AL;放入存储区
INCBX;修改指针
POPCX
L00PLOPI;循环
MOVDX,OFFSETCHAR;显示输入字符
MOVAH,9
INT21H
RET;返回DOS
MAINENDP
CODEENDS
ENDMAIN
DATASEGMENT
CHARDB10DUP(?)
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
MAINPROCPAR
PUSHDS
XORAX,AX
PUSHAX
MOVAX,DATA
MOVDS,AX
START:LEABX,CHAR;指向存储区
MOVCX,10;设计数
STI;开中断
LOPI:MOVAH,1
PUSHCX
MOVCX,0;设时间计数器为0
MOVDX,0
INT1AH
LOPZ:MOVAX,0;读时间计数值
INT1AH
CMPDL,20
JNZLOPZ
MOVAH,0;从键盘接收字符(以$结束)
INT16H
MOV[BX],AL;放入存储区
INCBX;修改指针
POPCX
L00PLOPI;循环
MOVDX,OFFSETCHAR;显示输入字符
MOVAH,9
INT21H
RET;返回DOS
MAINENDP
CODEENDS
ENDMAIN
答案解析:有
微信扫一扫手机做题