老师课堂画的题 及 答案.docx
- 文档编号:14985065
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:14
- 大小:26.77KB
老师课堂画的题 及 答案.docx
《老师课堂画的题 及 答案.docx》由会员分享,可在线阅读,更多相关《老师课堂画的题 及 答案.docx(14页珍藏版)》请在冰点文库上搜索。
老师课堂画的题及答案
请将下列左边的项和右边的解释联系起来(把所选字母放在括号中):
(1)CPU(M)A.保存当前栈顶地址的寄存器。
(2)存储器(C)B.指示下一条要执行的指令的地址。
(3)堆栈(D)C.存储程序、数据等信息的记忆装置,微机有RAM和ROM
(4)IP(B)D.以后进先出方式工作的存储空间。
(5)SP(A)E.把汇编语言程序翻译成机器语言程序的系统程序。
(6)状态标志(L)F.唯一代表存储空间中每个字节单元的地址。
(7)控制标志(K)G.能被计算机直接识别的语言。
(8)段寄存器(J)H.用指令的助记符、符号地址、标号等符号书写程序的语言。
(9)物理地址(F)I.把若干个模块连接起来成为可执行文件的系统程序。
(10)汇编语言(H)J.保存各逻辑段的起始地址的寄存器,8086/8088机有四个
(11)机器语言(G)K.控制操作的标志,如DF位。
(12)汇编程序(E)L.记录指令操作结果的标志,共6位:
OF、SF、ZF、AF、PFCF。
(13)连接程序(I)M.分析、控制并执行指令的部件,由算术逻辑部件AU和寄。
(14)指令(O)N.由汇编程序在汇编过程中执行的指令。
(15)伪指令(N)O.告诉CPU要执行的操作(一般还要指出操作数地址),在程
假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010数据段中变量名VAL的偏移地址为0050H,试指出下列源操作数字段的寻址方式是什么物理地址值是多少
(1)MOVAX,0ABH立即方式;操作数在本条指令中
(2)MOVAX,BX寄存器寻址方式;操作数为(BX)=0100H
(3)MOVAX,[100H]直接寻址方式;PA=20100H
(4)MOVAX,VAL直接寻址方式;PA=20050H
(5)MOVAX,[BX]BX寄存器间接寻址方式;PA=20100H
(6)MOVAX,ES:
[BX]附加段BX寄存器间接寻址方式;PA=21100H
(7)MOVAX,[BP]BP寄存器间接寻址方式;PA=15010H
(8)MOVAX,[SI]SI寄存器间接寻址方式;PA=200A0H
(9)MOVAX,[BX+10]BX寄存器相对寻址方式;PA=20110H
(10)MOVAX,VAL[BX]BX寄存器相对寻址方式;PA=20150H
(11)MOVAX,[BX][SI]BX和SI寄存器基址变址寻址方式;PA=201A0H
(12)MOVAX,VAL[BX][SI]BX和SI寄存器相对基址变址寻址方式;PA=201F0H
如TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,试问以下两条指令有什么区别指令执行完后AX寄存器的内容是什么?
MOVAX,TABLE
LEAAX,TABLE
答:
MOVAX,TABLE是将TABLE单元的内容送到AX,(AX)=1234H
LEAAX,TABLE是将TABLE单元的有效地址送到AX,(AX)=0032H
执行下列指令后AX寄存器中的内容是什么
TABLEDW10,20,30,40,50;000AH,0014H,001EH,0028H,0032H
ENTRYDW3
┇
MOVBX,OFFSETTABLE
ADDBX,ENTRY
MOVAX,[BX]
答:
(AX)=1E00H
设(DS)=1B00H,(ES)=2B00H,有关存储单元的内容如上右图所示。
请写出两条指令把字变量X装入AX寄存器。
答:
MOVBX,[2000H]
MOVAX,ES:
[BX]
假定(DX)=0B9H,(CL)=3,(CF)=1,确定下列各条指令单独执行后DX中的值。
(1)SHRDX,1;(DX)=05CH
(2)SARDX,CL;(DX)=17H
(3)SHLDX,CL;(DX)=5C8H
(4)SHLDL,1;(DX)=72H
(5)RORDX,CL;(DX)=2017H
(6)ROLDL,CL;(DX)=0CDH
(7)SALDH,1;(DX)=0B9H
(8)RCLDX,CL;(DX)=2CCH
(4)RCRDL,1;(DX)=0DCH
假设X和X+2单元的内容为双精度数p,Y和Y+2单元的内容为双精度数q,(X和Y为低位字)试说明下列程序段做什么工作
MOVDX,X+2
MOVAX,X
ADDAX,X
ADCDX,X+2
CMPDX,Y+2
JLL2
JGL1
CMPAX,Y
JBEL2
L1:
MOVAX,1
JMPSHORTEXIT
L2:
MOVAX,2
EXIT:
INT20H
答:
此程序段判断p*2>q,则使(AX)=1后退出;p*2≤q,则使(AX)=2后退出。
在下列程序的括号中分别填入如下指令:
(1)LOOPL20
(2)LOOPEL20(3)LOOPNEL20
试说明在三种情况下,当程序执行完后,AX、BX、
CX、DX四个寄存器的内容分别是什么
TITLE
CODESGSEGMENT
ASSUMECS:
CODESG,DS:
CODSEG,SS:
CODSEG
ORG100H
BEGIN:
MOVAX,01
MOVBX,02
MOVDX,03
MOVCX,04
L20:
INCAX
ADDBX,AX
SHRDX,1
()
RET
CODESGENDS
ENDBEGIN
答:
(1)(AX)=5H,(BX)=10H,(CX)=0H,(DX)=0H
(2)(AX)=2H,(BX)=4H,(CX)=3H,(DX)=1H
(3)(AX)=3H,(BX)=7H,(CX)=2H,(DX)=0H
指出下列指令的错误:
(1)MOVAH,BX;寄存器类型不匹配
(2)MOV[BX],[SI];不能都是存储器操作数
(3)MOVAX,[SI][DI];[SI]和[DI]不能一起使用
(4)MOVMYDAT[BX][SI],ES:
AX;AX寄存器不能使用段超越
(5)MOVBYTEPTR[BX],1000;1000超过了一个字节的范围
(6)MOVBX,OFFSETMYDAT[SI];MYDAT[SI]已经是偏移地址,不能再使用OFFSET
(7)MOVCS,AX;CS不能用作目的寄存器
(8)MOVECX,AX;两个操作数的数据类型不同
下面哪些指令是非法的(假设OP1,OP2是已经用DB定义的变量)
(1)CMP15,BX;错,立即数不能作为目的操作数
(2)CMPOP1,25
(3)CMPOP1,OP2;错,不能都是存储器操作数
(4)CMPAX,OP1;错,类型不匹配,应为CMPax,wordptrop1
假设程序中的数据定义如下:
LNAMEDB30DUP()
ADDRESSDB30DUP()
CITYDB15DUP()
CODE_LISTDB1,7,8,3,2
(1)用一条MOV指令将LNAME的偏移地址放入AX。
(2)用一条指令将CODE_LIST的头两个字节的内容放入SI。
(3)用一条伪操作使CODE_LENGTH的值等于CODE_LIST域的实际长度。
答:
(1)MOVAX,OFFSETLNAME
(2)MOVSI,WORDPTRCODE_LIST
(3)CODE_LENGTHEQU$-CODE_LIST;此语句必须放在CODE_LIST语句之后
对于下面的数据定义,三条MOV指令分别汇编成什么(可用立即数方式表示)
TABLEADW10DUP()
TABLEBDB10DUP()
TABLECDB‘1234’
┇
MOVAX,LENGTHTABLEA;汇编成MOVAX,000AH
MOVBL,LENGTHTABLEB;汇编成MOVBL,000AH
MOVCL,LENGTHTABLEC;汇编成MOVCL,0001H
对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么
FLDBDB
TABLEADW20DUP()
TABLEBDB‘ABCD’
(1)MOVAX,TYPEFLDB;(AX)=0001H
(2)MOVAX,TYPETABLEA;(AX)=0002H
(3)MOVCX,LENGTHTABLEA;(CX)=0014H
(4)MOVDX,SIZETABLEA;(DX)=0028H
(5)MOVCX,LENGTHTABLEB;(CX)=0001H
试说明下述指令中哪些需要加上PTR操作符:
BVALDB10H,20H
WVALDW1000H
(1)MOVAL,BVAL;不需要
(2)MOVDL,[BX];不需要
(3)SUB[BX],2;需要,如SUBBYTEPTR[BX],2
(4)MOVCL,WVAL;需要,如MOVCL,BYTEPTRWVAL
(5)ADDAL,BVAL+1;不需要
试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
答:
TEXTSEGMENT
ASSUMECS:
TEXT
START:
MOVAH,1
INT21H
CMPAL,'a'
JBSTOP
CMPAL,'z'
JASTOP
SUBAL,20H
MOVDL,AL
MOVAH,2
INT21H
JMPSTART
STOP:
RET
TEXTENDS
将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL、BL、CL和DL中。
答:
程序段如下:
DSEGSEGMENT
STOREDB4DUP()
DSEGENDS
┇
BEGIN:
MOVCL,4;右移四次
MOVCH,4;循环四次
LEABX,STORE
A10:
MOVDX,AX
ANDDX,0FH;取AX的低四位
MOV[BX],DL;低四位存入STORE中
INCBX
SHRAX,CL;右移四次
DECCH
JNZA10;循环四次完了码
B10:
MOVDL,STORE;四组数分别放在AL、BL、CL和DL中
MOVCL,STORE+1
MOVBL,STORE+2
MOVAL,STORE+3
STOP:
RET
试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示‘MATCH’,若不相同则显示‘NOMATCH’。
答:
程序如下:
DSEGSEGMENT
STRING1DB‘Iamastudent.’
STRING2DB‘Iamastudent!
’
YESDB‘MATCH’,0DH,0AH,‘$’
NODB‘NOMATCH’,0DH,0AH,‘$’
DSEGENDS
;--------------------------------------------------------------------------
CSEGSEGMENT
MAINPROCFAR
ASSUMECS:
CSEG,DS:
DSEG,ES:
DSEG
START:
PUSHDS;设置返回DOS
SUBAX,AX
PUSHAX
MOVAX,DSEG
MOVDS,AX;给DS赋值
MOVES,AX;给ES赋值
BEGIN:
LEASI,STRING1;设置串比较指令的初值
LEADI,STRING2
CLD
MOVCX,STRING2-STRING1
REPECMPSB;串比较
JNEDISPNO
LEADX,YES;显示MATCH
JMPDISPLAY
DISPNO:
LEADX,NO;显示NOMATCH
DISPLAY:
MOVAH,9;显示一个字符串的DOS调用
INT21H
RET
MAINENDP
CSEGENDS;以上定义代码段
;--------------------------------------------------------------------------
ENDSTART
从键盘输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示出计数结果。
答:
程序段如下:
DSEGSEGMENT
BUFFDB50DUP('')
COUNTDW0
DSEGENDS
┇
BEGIN:
LEABX,BUFF
MOVCOUNT,0
INPUT:
MOVAH,01,从键盘输入一个字符的功能调用
INT21H
MOV[BX],AL
INCBX
CMPAL,'$’,是$结束符吗
JNZINPUT,不是,继续输入
LEABX,BUFF,对非数字字符进行计数
NEXT:
MOVCL,[BX]
INCBX
CMPCL,'$’,是$结束符,则转去显示
JZDISP
CMPCL,30H,小于0是非数字字符
JBNEXT
CMPCL,39H,大于9是非数字字符
JANEXT
INCCOUNT,个数+1
JMPNEXT
DISP:
┇,16进制数显示程序段(省略)
分析下面的程序,画出堆栈最满时各单元的地址及内容。
;********************************************
S_SEGSEGMENTAT1000H;定义堆栈段
DW200DUP();200*2=190H
TOSLABELWORD
S_SEGENDS
;********************************************
C_SEGSEGMENT;定义代码段
ASSUMECS:
C_SEG,SS:
S_SEG
START:
MOVAX,S_SEG
MOVSS,AX
MOVSP,OFFSETTOS
PUSHDS
MOVAX,0
PUSHAX
┇
PUSHT_ADDR
PUSHAX
PUSHF
┇
POPF
POPAX
POPT_ADDR
RET
;--------------------------------------------------------------------------
C_SEGENDS;代码段结束
;******************************************
ENDSTART;程序结束
假定串行通讯口的输入数据寄存器的端口地址为50H,状态寄存器的端口地址为51H,状态寄存器各位为1时含义如右图所示,请编写一程序:
输入一串字符并存入缓冲区BUFF,同时检验输入的正确性,如有错则转出错处理程序ERROR_OUT。
答:
程序段如下:
MOVDI,0
MOVCX,80;最多输入80个字符
BEGIN:
INAL,51H;查询输入是否准备好
TESTAL,02H
JZBEGIN
INAL,50H;输入数据并存入缓冲区BUFF
MOVBUFF[DI],AL
INCDI
INAL,51H;判断是否有错
TESTAL,00111000B
JNZERROR_OUT
LOOPBEGIN
┇
试编写程序,它轮流测试两个设备的状态寄存器,只要一个状态寄存器的第0位为1,则就与其相应的设备输入一个字符;如果其中任一状态寄存器的第3位为1,则整个输入过程结束。
两个状态寄存器的端口地址分别是0024H和0036H,与其相应的数据输入寄存器的端口地址则为0026H和0038H,输入字符分别存入首地址为BUFF1和BUFF2的存储区中。
答:
程序段如下:
MOVDI,0
MOVSI,0
BEGIN:
INAL,24H
TESTAL,08H;查询第一个设备的输入是否结束
JNZEXIT
TESTAL,01H;查询第一个设备的输入是否准备好
JZBEGIN1
INAL,26H;输入数据并存入缓冲区BUFF1
MOVBUFF1[DI],AL
INCDI
BEGIN1:
INAL,36H
TESTAL,08H;查询第二个设备的输入是否结束
JNZEXIT
TESTAL,01H;查询第二个设备的输入是否准备好
JZBEGIN
INAL,38H;输入数据并存入缓冲区BUFF2
MOVBUFF2[SI],AL
INCSI
JMPBEGIN
EXIT:
┇
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 老师课堂画的题 答案 老师 课堂