习题21.
机器指令分成几部分每部分的作用是什么2.
试根据以下要求,分别写出相应的汇编语言指令:(1)以寄存器BX和SI作为基址变址寻址方式把存储器中的一个字传送到CX寄存器.
(2)以寄存器BX和偏移量VALUE作为寄存器相对寻址方式把存储器的一个字和AX相加,把结果(即和)送回那个字单元中.
(3)将一字节立即数0B6H与符号地址为NUM的存储器字节单元内容相比较.
(4)测试从寄存器BP和DI、偏移量COUNT作为相对基址变址寻址方式寻址的存储器字节单元内容最高位的值,字节单元的内容不能改变(5)将AH寄存器中的高四位和低四位数据互换.
(6)清除以寄存器SI间接寻址的存储器字单元,同时清除CF标志位.
3.
写出实现下列计算的指令序列.
(假定X、Y、Z、W、R都为字变量)(1)Z=W+(Z+X)(2)Z=W(X+6)(R+9)4.
若在数据段中从字节变量TABLE相应的单元开始存放了0~15的平方值,试写出包含有XLAT指令的指令序列查找N(0~15)中的某个数的平方.
(设N的值存放在CL中)5.
写出实现下列计算的指令序列.
(假定X、Y、Z、W、R都为字变量)(1)Z=(W*X)/(R+6)(2)Z=((WX)/5*Y)*26.
假定DX=1100100110111001B,CL=3,CF=1,试确定下列各条指令单独执行后DX的值.
(1)SHRDX,1(2)SHLDL,1(3)SALDH,1(4)SARDX,CL(5)RORDX,CL(6)ROLDL,CL(7)RCRDL,1(8)RCLDX,CL7.
试分析下列程序完成什么功能MOVCL,4SHLDX,CLMOVBL,AHSHLBL,CLSHRBL,CLORDL,BL8.
指出下列MOV指令的源操作数的寻址方式:MOVAX,1234HMOVAX,BXMOVAX,[BX]MOVAX,TABLE;TABLE;TABLE是一个变量名MOVAX,[1234H]MOVAX,[BX+1234H]MOVAX,[BP][SI]MOVAX,[BX+SI-1234H]9.
设:(DS)=2000H,(BX)=0100H,(SS)=1000H,(BP)=0010H,TABLE的物理地址为2000AH,(SI)=0002H.
求下列每条指令源操作数的存储单元地址:MOVAX,[1234H]MOVAX,[BX]MOVAX,TABLE[BX]MOVAX,[BP]MOVAX,[BP][SI]10.
设ARRAY是字数组的首地址,写出将第5个字元素取出送AX寄存器的指令,要求使用以下几种寻址方式:⑴直接寻址⑵寄存器间接寻址⑶寄存器相对寻址⑷基址变址寻址11.
设有以下程序段,求执行完此程序后AX寄存器中的内容:ABCEQU2DATA1DB20HDATA2DW1000HSTART:MOVAX,DATA1+ABC12.
设变量ARRAY中连续存放了字变量NUMBR的偏移地址和段地址,试写出把变量NUMBR装入AX寄存器中的指令序列.
13.
设当前(CS)=2000H,(IP)=2000H,标号NEXT定义在当前代码段偏移地址是0100H处,(DS)=1000H,(BX)=1000H,(11000H)=00H,(11001H)=30H,数据段定义的字变量ARRAY的内容为1000H,试写出下列转移指令的目标转移地址⑴JMPNEARPTR⑵JMPBX⑶JMPWORDPTRARRAY14.
设DS=1000H,BX=2865H,SI=0120H,偏移量D=47A8H,试计算下列各种寻址方式下的有效地址.
(1)使用D的直接寻址.
(2)使用BX的寄存器间接寻址.
(3)使用BX和D的寄存器相对寻址.
(4)使用BX、SI和D的相对基址变址寻址.
15.
指出下列指令的错误原因:(1)MOVAX,CL(2)MOVCS,AX(3)INCBETA[BP](4)MOVES,1850H16.
写出把首址为BLOCK的字数组的第六个字传送到CX寄存器的指令序列,要求分别使用以下几种寻址方式:(l)以BX寄存器的间接寻址.
(2)以BX寄存器的相对寻址.
(3)以BX、SI的基址变址寻址.
17.
指出下列指令的源和目的操作数的寻址方式:(1)MOVARRAY,AX(2)ADCCX,ALPHA[BX[[SI](3)TESTES:[SI],DX(4)SBBSI,[BX]18.
试分析下列程序段,说明完成了什么操作程序执行前后,HEXNUM字节单元的内容是什么ASCNUMDB4lHHEXNUMDBMOVAH,ASCNUMCMPAH,39HJBENEXTSUBAH,7NEXT:SUBAH,30HMOVHEXNUM,AHHLT19.
设当前(CS)=2000H,(IP)=2000H,标号NEXT定义在3000H:1000H处.
当前(DS)=1000H,(BX)=1000H,(11000H)=00H,(11001H)=03H,(11002H)=00H,(11003H)=30H,数据段定义的字变量ARRAY的内容为0300H,(ARRAY+2)=3000H,试写出下列转移指令的目标转移地址:⑴JMPFARPTRNEXT⑵JMPDWORDARRAY20.
MOVCS,AX指令正确吗21.
若正在访问堆栈中03600H单元,则SS和SP的值是多少22.
若(SS)=2000H,(SP)=000AH,先执行将字数据1234H和5678H压入堆栈的操作,再执行弹出一个字数据的操作,试画出堆栈区及SP的内容变化过程示意图(标出存储单元的物理地址).
23.
解释XLAT指令是怎样转换AL寄存器中的内容的.
并编写一段程序用XLAT指令将BCD码0~9转换成对应的ASCII码,并将ASCII码存入数据ARRAY中.
24.
能用ADD指令将BX内容加到ES中去吗25.
INC[BX]指令正确吗26.
若(AX)=0001H,(BX)=0FFFFH,执行ADDAX,BX之后,标志位ZF、SF、CF、OF各是什么27.
写一指令序列完成将AX寄存器的最低4位置1,最高3位清0,第7、8、9位相反,其余位不变.
28.
试写出执行下列指令序列后AX寄存器的内容.
执行前(AX)=1234HMOVCL,7SHLBX,CL29.
假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列指令中哪些是非法的它们的错误是什么⑴MOVBP,AL⑵MOVWORD_OP[BX+4*3][DI],SP⑶MOVWORD_OP1,WORD_OP2⑷MOVAX,WORD_OP1[DX]⑸MOVSAVEWORD,DS⑹MOVSP,SS:DATA_WORD[BX][SI]⑺MOV[BX][SI],2⑻MOVAX,WORD_OP1+WORD_OP2⑼MOVAX,WORD_OP1-WORD_OP2+100⑽MOVWORD_OP1,WORD_OP1-WORD_OP230.
假设VAR1和VAR2为字变量,LAB为标号,试指出下列指令的错误之处:⑴ADDVAR1,VAR2⑵SUBAL,VAR1⑶JMPLAB[SI]⑷JNZVAR1⑸JMPNEARLAB31.
画图说明下列语句所分配的存储空间及初始化的数据值.
⑴BYTE_VARDB'BYTE',12,-12H,3DUP(0,,2DUP(1,2),)⑵WORD_VARDW5DUP(0,1,2),,-5,,'BY','TE',256H32.
试列举各种方法,使汇编程序把5150H存入一个存储器字中(例如:DW5150H).
33.
假设程序中的数据定义如下:PARTNODWPNAMEDB16DUP()COUNTDDPLENTHEQU$-PARTNO问PLENTH的值为多少它表示什么意义34.
有符号定义语句如下:BUFFDB1,2,3,'123'EBUFFDB0LEQUEBUFF-BUFF问L的值是多少35.
假设程序中的数据定义如下:LNAMEDB30DUP()ADDRESSDB30DUP()CITYDB15DUP()CODE-LISTDB1,7,8,3,2⑴用一条MOV指令将LNAME的偏移地址放入AX.
⑵用一条指令将CODE_LIST的头两个字节的内容放入SI.
⑶写一条伪操作使CODE_LENGHT的值等于CODE_LIST域的实际长度.
36.
试写出一个完整的数据段DATA_SEG,它把整数5赋予一个字节,并把整数-1,0,2,5和4放在10字数组DATA_LIST的头5个单元中.
然后,写出完整的代码段,其功能为:把DATA_LIST中头5个数中的最大值和最小值分别存入MAX和MIN单元中.
37.
给出等值语句如下:ALPHAEQU100BETAEQU25GAMMAEQU2下列表达式的值是多少⑴ALPHA*100+BETA⑵ALPHAMODGAMMA+BETA⑶(ALPHA+2)*BETA-2⑷(BETA/3)MOD5⑸(ALPHA+3)*(BETAMODGAMMA)⑹ALPHAGEGAMMA⑺BETAAND7⑻GAMMAOR338.
对于下面的数据定义,三条MOV指令分别汇编成什么(可用立即数方式表示)TABLEADW10DUP()TABLEBDB10DUP()TABLECDB'1234'MOVAX,LENGTHTABLEAMOVBL,LENGTHTABLEBMOVCL,LENGTHTABLEC39.
对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么FLDBDBTABLEADW20DUP()TABLEBDB'ABCD'⑴MOVAX,TYPEFLDB⑵MOVAX,TYPETABLEA⑶MOVCX,LENGTHTABLEA⑷MOVDX,SIZETABLEA⑸MOVCX,LENGTHTABLEB40.
已知SS=0FFA0H,SP=00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令,试画出堆栈区和SP内容变化的过程示意图.
(标出存储单元的地址)41.
试分析下列程序段:ADDAX,BXJNCL2SUBAX,BXJNCL3JMPSHORTL5如果AX、BX的内容给定如下:AXBX(1)14C6H80DCH(2)B568H54B7H问该程序在上述情况下执行后,程序转向何处42.
下列语句在存储器中分别为变量分配多少字节空间并画出存储空间的分配图.
ProfitServer怎么样?ProfitServer好不好。ProfitServer是一家成立于2003的主机商家,是ITC控股的一个部门,主要经营的产品域名、SSL证书、虚拟主机、VPS和独立服务器,机房有俄罗斯、新加坡、荷兰、美国、保加利亚,VPS采用的是KVM虚拟架构,硬盘采用纯SSD,而且最大的优势是不限制流量,大公司运营,机器比较稳定,数据中心众多。此次ProfitServer正在对...
diyvm怎么样?diyvm是一家国内成立时间比较久的主机商家了,大约在6年前站长曾经用过他家的美国机房的套餐,非常稳定,适合做站,目前商家正在针对香港沙田机房的VPS进行促销,给的是五折优惠,续费同价,香港沙田机房走的是CN2直连的线路,到大陆地区的速度非常好,DiyVM商家采用小带宽不限流量的形式,带宽2Mbps起步,做站完全够用,有需要的朋友可以入手。diyvm优惠码:五折优惠码:OFF50...
Webhosting24宣布自7月1日起开始对日本机房的VPS进行NVMe和流量大升级,几乎是翻倍了硬盘和流量,价格依旧不变。目前来看,日本VPS国内过去走的是NTT直连,服务器托管机房应该是CDN77*(也就是datapacket.com),加上高性能平台(AMD Ryzen 9 3900X+NVMe),还是有相当大的性价比的。此外在6月30日,又新增了洛杉矶机房,CPU为AMD Ryzen 9...