汇编语言大题.docx

上传人:b****5 文档编号:8840650 上传时间:2023-05-15 格式:DOCX 页数:10 大小:19.17KB
下载 相关 举报
汇编语言大题.docx_第1页
第1页 / 共10页
汇编语言大题.docx_第2页
第2页 / 共10页
汇编语言大题.docx_第3页
第3页 / 共10页
汇编语言大题.docx_第4页
第4页 / 共10页
汇编语言大题.docx_第5页
第5页 / 共10页
汇编语言大题.docx_第6页
第6页 / 共10页
汇编语言大题.docx_第7页
第7页 / 共10页
汇编语言大题.docx_第8页
第8页 / 共10页
汇编语言大题.docx_第9页
第9页 / 共10页
汇编语言大题.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

汇编语言大题.docx

《汇编语言大题.docx》由会员分享,可在线阅读,更多相关《汇编语言大题.docx(10页珍藏版)》请在冰点文库上搜索。

汇编语言大题.docx

汇编语言大题

1.6若机器字长为16位,其无符号数表示范围是多少?

带符号数表示范围是多少?

分别用十进制和十六进制表示。

答:

无符号数:

0~65535,0000H~FFFFH;带符号数:

-32768~+32767,8000H~7FFFH

1.9写出下列算式的二进制运算结果,标志位CF、SF、ZF、OF分别是什么值?

答:

(156+63=01110111B,CF=0,SF=0,ZF=0,OF=0

(283-45=00100110B,CF=1,SF=0,ZF=0,OF=0

(3-74+29=11010011B,CF=0,SF=1,ZF=0,OF=0

(4-92-37=01111111B,CF=1,SF=0,ZF=0,OF=1

2.98086CPU的地址线为20根,寻址空间为1MB。

最少可划分为多少个逻辑段?

最多呢?

答:

最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节

2,18已知堆栈区大小为512字节,栈底单元的物理地址为15230H。

将两个字入栈保存后,当前栈指针所指单元的物理地址是多少?

堆栈区中还能保存多少个数据?

答:

当前栈指针所指单元的物理地址是1522CH。

堆栈区中还能保存254个字。

2.21在DEBUG下,要将寄存器CX的值修改为100H,应该执行什么命令?

答:

执行RCX,然后输入100

2.22在DEBUG下,怎样将数据段的0号~4号字节单元填入'a'、'b'、'c'、'd'?

答:

执行EDS:

0?

a?

?

b?

?

c?

?

d?

3.8根据题目要求,写出相应的汇编指令

(1把BX寄存器的值传送给AX

(2将立即数15送入CL寄存器

(3用BX寄存器间接寻址方式将存储单元中的字与AX寄存器的值相加,结果在AX中

(4把AL中的字节写入用基址变址寻址的存储单元中

(5用SI寄存器和位移量VALUE的寄存器相对寻址方式,从存储单元中读出一个字送入寄存器AX

(6将AX中的数与偏移地址为2000H存储单元的数相减,结果在AX中

答:

(1MOVAX,BX(2MOVCL,15(3ADDAX,[BX]

(4MOV[BX+SI],AL(5MOVAX,VALUE[SI](6SUBAX,DS:

[2000H]

3.10在数据寻址方式中,哪种寻址方式的操作数与指令一起存放在代码段?

答:

立即寻址方式中操作数(立即数和指令一起存放在代码段中。

4.24编程序。

将键盘输入的小写字母变为大写字母显示在屏幕上。

答:

.modelsmall

.code

start:

movah,1;键盘输入

int21h

subal,20h;变为大写

movdl,al

movah,2

int21h

movah,4ch

int21h

endstart

4.25X和Y都是字节型数据,编写将两数相加的结果显示出来的程序段答:

.modelsmall

.data

xdb12h

ydb34h

.code

start:

movax,@data

movds,ax

moval,x

addal,y;结果为46H

movah,al;AH=46H

andal,0fh;AL=06H

movcl,4

rolah,cl;AH=64H

andah,0fh;AH=04H

addax,3030h;AX=3436H

movbx,ax

movdl,bh;显示4

movah,2

int21h

movdl,bl;显示6

int21h

movah,4ch

int21h

endstart

4.26编写程序,建立一个0~9的平方根表,查表可得某数的平方根。

答:

datasegment

xdb'0.000','1.000','1.414','1.732','2.000'

db'2.236','2.449','2.646','2.828','3.000'建;立字符表ydb5dup(?

;存放查到平方根

udb3;要查的数

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

moval,u;要查的数

movcl,5

mulcl;u*5=15(号单元开始

movah,0

movbx,ax;地址保存到bx

movsi,0

let1:

moval,x[bx];取出平方根数字

movy[si],al;存入y

incsi

incbx

looplet1;循环取出5次

movah,4ch

int21h

codeends

endstart

4.30用简化的程序格式编程序,在屏幕的5行12列上显示红底白字的字符串“Come”作业(本,仿例4-7

5.11已知(BX=7890H,写出指令实现逻辑左移2位。

请问哪个标志位改变了?

答:

进位标志CF=1

5.15写出将AL.4清零的指令。

(AL中除第4位外的其他位保持不变。

答:

ANDAL,11011111B

5.29字数组M中有10个数据,分类统计其中正数、负数、0的个数,分别存入POSI、NEGA、ZERO单元。

答:

DATA1SEGMENT

MDW21,-34,32,112,-324,0,76,0,48,50

POSIDW?

NEGADW?

ZERODW?

DATA1ENDS

CODE1SEGMENT

ASSUMECS:

CODE1,DS:

DATA1

START:

MOVAX,DATA1

MOVDS,AX

MOVCX,10

LEASI,M

AGAIN:

CMPWORDPTR[SI],0

JLLOWER

JEEQUAL

INCPOSI

JMPLPP1

LOWER:

INCNEGA

JMPLPP1

EQUAL:

INCZERO

LPP1:

ADDSI,2

DECCX

JNZAGAIN

MOVAH,4CH

INT21H

CODE1ENDS

ENDSTART

6.11写出下列程序段的执行结果

BUFFDB10,22,14,6,31

TOTALDB?

MOVBX,OFFSETBUFF

MOVCX,TOTAL-BUFF

MOVAL,0

AA1:

ADDAL,[BX]

INCBX

LOOPAA1

MOVTOTAL,AL答:

累加和TOTAL=83

6.12分析下列程序段的功能

XDB2,-3,15,0,9,4

LEABX,X

MOVCX,6

MOVAX,0

AA2:

MOVAL,[BX]

CMPAL,0

JNENEXT

INCAH

NEXT:

INCBX

LOOPAA2

答:

循环统计X中0的个数

7.10为什么要进行现场保护?

怎样做现场保护?

答:

(1在编写子程序时要注意一个问题,如果主程序用到某些寄存器保护数据,转到子程序后,这些寄存器有可能被改写,或者某些指令必须用特定的寄存器,如乘法、除法指令必须用AX或AL,循环和移位指令必须用CX或CL;还有一些场合需要保存标志寄存器的内容等。

因此在进入子程序时,先要把这些寄存器保存起来,称为现场保护。

(2一般采用PUSH指令入栈保存的方法。

在子程序返回主程序之前,将堆栈中保存的内容用POP指令弹出到相关的寄存器中,称为恢复现场。

7.12阅读下列子程序,解释该程序的功能。

SUBR1PROCNEAR

PUSHAX

PUSHBX

MOVAL,X

ADDAL,BL

MOVY,AL

POPBX

POPAX

RET

SUBR1ENDP

答:

功能:

两个字节数相加。

X和BL相加保存到Y。

7.13解释下列子程序的功能。

SUBR2PROCNEAR

MOVSI,0

LET1:

MOVAH,1

INT21H

CMPAL,0DH

JZOUT1

MOVKEY[SI],AL

INCSI

JMPLET1

OUT1:

RET

SUBR2ENDP

答:

功能:

键盘输入的字符保存到KEY单元中,直到按回车为止

7.14给出下列子程序的功能和执行结果

XDB3AH

SUBR3PROCNEAR

MOVAL,X

MOVBL,10

MOVDX,0

LETE:

MOVAH,0

DIVBL

MOVDL,AH

PUSHDX

CMPAL,0

JNZLETE

RET

SUBR3ENDP

答:

功能:

将X单元中的十六进制3AH变为十进制入栈保存,AH中为余数将0008H入栈,再将0005H入栈,结果为58。

8.7请举例说明宏的变元是操作数和变元是操作码的用法。

(P174P175

8.9在宏定义中可以使用标号吗?

是否需要说明?

8.16分析下列宏定义,指出它的作用

EXM1MACROX1

MOVAH,X1

INT21H

ENDM

答:

宏的作用:

DOS功能调用。

功能号用哑元指出。

8.17解释下列宏的功能。

EXM2MACROA,B,C

MOVAX,A

ADDAX,B

MOVC,AX

ENDM

答:

宏的作用:

两个操作数相加,结果保存在第3个数中。

8.18指出下列宏的作用。

EXM3MACROC1

MOVAH,2MOVDL,C1INT21HENDM答:

宏的作用:

DOS的2号显示功能。

8.19分析下列宏,指出它的作用。

EXM4MACROA1,A2VALUEDWA1DUP(A2ENDM答:

宏的作用:

定义VALUE数组,数组长度和初值由哑元指出。

8.20下列宏是一个分支程序,宏定义中缺少标号的处理。

请添加,并指出宏的功能。

EXM5MACROB1,B2MOVAL,B1SUBAL,B2JNSLETT1NEGALLETT1:

RETENDM答:

缺少标号定义LOCALLETT1。

宏的作用:

两个哑元相减,结果为负则求补。

9.2硬件中断发生时,CPU怎样获知?

CPU如何处理硬件中断?

9.4什么是中断向量?

什么是中断向量表?

80X86系统的中断向量表在哪儿?

答:

(1)在每个中断类型相对应的中断处理子程序都有一个入口地址,即该中断子程序第1条指令的逻辑地址,该入口地址称为中断向量。

(2)用于保存所有的中断向量。

(3)P200图9-1*9.580X86系统可以有多少个中断类型?

中断类型号是如何划分的?

答:

(1)80X86系统提供了256个中断类型(可用1字节表示),类型号为0-FFH

(2)中断类型代表了不同的中断源,而系统对中断类型的分配按照一定的规则划分,即0-4号为内;中断,5号为用户访问中断;8-0FH号为8259A中断控制器控制的8个硬件中断;10H-1AH号为BIOS基本输入/输出系统专用;1BH、1CH号为用户访问中断;20H-27H号为DOS中断;40-5F、67-77、BD-FF为硬盘参数、系统BASIC等。

9.8中断过程和子程序调用过程一样吗?

有何异同?

9.40

(1)编写80H号中断处理程序。

中断发生时,将BX寄存器内容以二进制形式显示。

(2)编写80H号中断处理程序。

中断发生时,显示彩色的0-9十个数字。

答:

(2)assumecodestart:

movax,csmovds,axmovsi,offsetdispmovax,0moves,axmovdi,200hmovcx,offsetdisp_end-offsetdispcs:

codesegment

cldrepmovsb;movax,0moves,axmovwordptres:

[80h*4],200hmovwordptres:

[80h*4+2],0;int80hmovah,4chint21hdisp:

movax,0b800hmoves,axmovdi,160*12+40*2movdl,30hmovcx,10s:

inal,40handal,0fhxchgah,almoval,dlmoves:

[di],axadddi,2incdlloopsiretdisp_end:

nopcodeendendssta;rt在此处加上此句就可以啦;;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2