




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习题5(ver2.01305)5-1设已定义数据段DATA SEGMENTORG 0020HDA DB 20H DUP(0)DA1 DB 12H, 34HDA2 DB 56H, 78HADDR DW DA1, DA2;变量ADDR(指定的单元)中存放变量DA1、DA2的(16位)偏移地址。;也就是说,ADDR字存储单元的内容为变量DA1的(16位)偏移地址,ADDR+2字存储单元的内容为变量DA2的(16位)偏移地址.为使ADDR+2字存储单元中存放的内容为0022H,试用两种不同语句填写上述空格。5-2试用DW数据定义语句改写下面两条语句,使它们在存储器中与上述语句分别有完全一致的存储情况。DA1 DB ABCDEFGHIDA2 DB 12H, 34H, 56H, 78H, 9AH, 0BCH, 0DEH【分析】(1) 在DB伪指令中,一个字符串表达式可以连续书写少于255个的字符,每一个字符分配一个字节存储单元,按地址递增的排列顺序依次存放字符串白左至右的每一个字符。(2) 在DW伪指令中,每一个字符串表达式只能由12个字符组成,DW伪指令为每一个字符串表达式分配两个字节存储单元。如果表达式是由两个字符组成,那么前一个字符的ASCII码存放在高字节中,后一个字符的ASCII码存放在低字节中。如果表达式由一个字符组成,那么该字存储单元的高字节存放00,而唯一字符的ASCII码存放在低字节存储单元中。DA1 DW BA, DC, FE, HG, IDA2 DW 3412H, 7856H, 0BC9AH, 0DEH5-3下面两条语句汇编后,NUM1和NUM2两字节存储单元中的内容分别是什么?NUM1 DB (12 OR 6 AND 2) GE 0EHNUM2 DB (12 XOR 6 AND 2) LE 0EH【分析】运算符的优先级 见page 214表5-2NUM1 DB (12 OR 6 AND 2) GE 0EH(1) 6 AND 201100010=0010(2) 12 OR 001011000010=1110140EH(3) 0EH GE 0EHFFH因此,NUM1 DB FFHNUM2 DB (12 XOR 6 AND 2) LE 0EH(1) 6 AND 201100010=0010(2) 12 XOR 001011000010=1110140EH(3) 0EH LE 0EHFFH因此,NUM2 DB FFH5-4下面两条指令执行后,DA2字存储单元中的内容是什么?DA1 EQU BYTE PTR DA2; DA1所指定的存储单元为DA2的低位字节DA2 DW 0ABCDH;(16位)字单元SHL DA1, 1;(字节)逻辑左移。最高位移入CF中,最低位补0。;0CDH(1100,1101)1,1001,1010 9AH CF=1;DA2低位字节存储单元内容为9AH,高位字节内容不变,为ABH。SHR DA2, 1;(字)逻辑右移。最低位移入CF中,最高位补0。;0AB9AH(1010,1011,1001,1010)0101,0101,1100,1101,0;CF=0,DA2字存储单元内容为55CDH。【分析】5-5在下面数据定义中,数据为3000H的字存储单元有几个,它们的偏移地址分别是多少?ORG30HDATA1DB0, 0, 30H, 0, 30HDWDATA1【分析】2个,3000h, 3003h 30h 33h地址30313233343536 存储单元内容003030003030005-6在下面存储区中能构成0302H数据的字存储单元共有几个?DB 8 DUP (3 DUP(2), 2 DUP(3)【分析】地址0123456789101112131415161718192021222324252627282930313233343536373839存储单元内容02020203030202020303020202030302020203030202020303020202030302020203030202020303字单元必须始于偶地址处。5-7下面的语句汇编后,数据项$+20H和$+40H中的$值分别是多少?ORG34HDA1DW10H, $+20H, 30H, $ +40H【分析】地址($值)34H35H36H37H38H39H3AH3BH存储单元内容1000560030007A005-8己定义数据段ORG 0213HBYTE1DB 15H, 34H, 56HADR1DW BYTE1下列各指令语句执行后,能使AX中数据为偶数的语句有哪些?(1)MOV AX, WORD PTR BYTE1;3415H(2)MOV AX, WORD PTR BYTE11;5634H; BYTE11等效于BYTE1+1(3)MOV AL, BYTE PTR ADR11;02H(4)MOV AX, WORD PTR BYTE12;1356H【分析】地址1314151617181920 存储单元内9下面的指令序列执行后,AX、BX、CX寄存器的内容分别是什么?ORG0202HDW1DW20H, 30HMOVAL, BYTE PTR DW1+1;(AL)=00HMOVAH, BYTE PTR DW1;(AH)=20HMOV BX, OFFSET DW1;(BX)=0202HMOVCL, BYTE PTR DW1+2;(CL)=30HMOVCH, TYPE DW1;(CH)=02H , 见page 212表5-1【分析】5-10下面的程序段运行后,AH和AL中的内容分别是什么?DA1DB;是任一数据DA2DB0FEHMOVAL, DA1ORAL, DA2MOVAH, ALXORAH, 0FFH【分析】5-11下面的程序段运行后,CX和DX中内容分别是什么?DA3DB82H, 76H, 56H, 0ADH, 7FHMOVCX, WORD PTR DA3;(CX)=7682HANDCX, 0FH;(CX)=0002HMOVAL, DA3+3;(AL)=0ADH/1010 1101HSHLAL, CL;(AL)=0B4H/ 1011 0100H上述程序段运行后,AL中的内容是什么?【分析】5-12下面的程序段运行期间,CX和DX中的内容分别是什么?DA4EQUWORD PTR DA5DA5DB0ABH, 89HSHR DA4, 1;DA4原来为89ABH(1000 1001 1010 1011) 之后(0100 0100 1101 0101)=44D5HMOVDX , DA4;(DX)=44D5HSHLDA5 , 1; DA5原来为(1101 0101)=D5H之后(1010 1010)=AAHMOVCX, DA4;(CX)=44AAH【分析】5-13当执行完INC BX指令且(BX)=05H时,CX和AL中的内容分别是什么?AA1DB10H DUP(2)AA2DW10H DUP(0304H)XORBX, BX ;设置数据指针XORAL, AL ;设置累加器初值XORCX, CX ;设置计数器初值为0BB1:ADDAL, AA1BX ;累加ADDAL, BYTE PTR AA2BX ;累加INCBX ;修改数据指针LOOPBB1 ;循环【分析】 解:(AL)=2+4+2+3+2+4+2+3+2+4=28=1CH , (CX)=252 5-14下面的程序段运行后,(AX)=?如用LOOPNE指令替代LOOP指令,那么上述程序段运行后,(AX)=?(CX)=?DB2DB4 DUP(2, 4, 6, 8)LEABX, DB2MOVCX, 10HXORAX, AXLOP:ADDAL, BXANDAL, 0FHCMPAL, 8INC BXJBENEXT ;page237 JBE条件?ZF受INC影响,可能改变程序走向?INCAHSUBAL, 08HNEXT:LOOP LOP【分析】由上表可知道,上述程序段执行后,(AX)=0600H,(CX)=0如果LOOPNE指令替代LOOP指令,那么上述程序段执行后,(AX)=0300H (CX)=8 5-15下面的程序段运行后,AH和AL中的内容分别是什么?DA5DB2, 3, 7, 0AH, 0FH, 4, 5, 9, 8, 0CHXORAX, AX ; AX=0XORCL, CL ; CL=0XORBX, BX ; BX=0LOP:TESTDA5BX, 01H ;测试存储单元的数据是否偶数JENEXT ; 是偶数,则跳转ADDAL, DA5BX ;是奇数,将其累加INCAH ; 计算奇数个数NEXT:INCBX ;指向下一个存储单元INCCL ;数据个数计数器CMPCL, 10 ;运行后,(AL)=奇数之和=39=27HJNELOP ;(AH)=10【分析】 5-16下面程序段是根据DAY字节存储单元中内容(17),从表WEEK中查出对应的星期一至星期日的英文缩写,并用2号功能调用(单个字符显示)显示输出。试把空白处填上适当的指令(一个空白只填写一条指令)。WEEKDBMON, TUE, WED, THU, FRI, SAT, SUNDAYDB3;数据17XORBX, BXMOVBL, DAYDECBL;BLDAY-1MOVAL, BLSALBL, 1;BL2(DAY-1)ADDBL, AL;BL3(DAY-1)MOVCX, 3LOP:MOVDL, WEEKBX;见page262MOVAH, 02HINT21HINCBXLOOPLOP【分析】地址0123456789101112131415161718192021存储单元内容MONTUEWEDTHUFRISATSUN3ASCII码4D035-17下面是判断两个存储单元是否同为正数。如果是,则AX置0;否则AX置非0。试把空白处填上适当的条件转移指令(两个空白处要利用不同的标志位选用不同的条件转移指令,一个空白只填写一条指令)。DA6DWDA7DWMOVAX, DA6MOVBX, DA7XORAX, BX;AXDA6DA7。影响标志位SF、ZF、PF,CF=0、OF=0,AF不确定。;如果DA6和DA7同为正数或负数,则SF=0,否则SF=1。(将0视为正数)JSNEXT;SF=1DA6和DA7一正一负,不设置AX,跳转至NEXT。TESTBX, 8000H;(BX)(8000H)。BX的最高位是否为1?判断BX是否为负数。;影响标志位SF、ZF、PF,CF=0、OF=0,AF不确定。JNZNEXT;ZF=0上一条影响标志位ZF的指令运行的结果不为0,DA7和DA6为负数。MOVAX, 0NEXT:【分析】DATA1SEGMENTDA6DW0111HDA7DW8001HDISP1DBDA6 and DA7 are Positive Number,13,10,$DISP2DBDA6 or DA7 are not Positive Number Number,13,10,$DATA1ENDSCODE1SEGMENTMAINPROCFARASSUMECS:CODE1, DS:DATA1, ES:DATA1START:PUSHDSSUBAX, AXPUSHAXMOVAX, DATA1MOVDS, AXMOVES, AXMOVAX, DA6MOVBX, DA7XORAX, BXJSNEXTTESTBX, 8000HJNZNEXTLEADX, DISP1JMPDISPNEXT:LEADX,DISP2DISP:MOVAH,09HINT21HRETMAINENDPCODE1ENDSENDSTART5-18下面程序段是判断寄存器AH和AL中第3位是否相同。如果相同,AH置0;否则AH置非0。试把空白处填上适当的指令(一个空白只填写一条指令)。XORAH, AL;AHAHAL。按位异或,结果送AH。;对应位相同,则异或结果为零(AH的对应位为零)。;对应位不相同,则异或结果为1。;如果AH和AL的第3位相同,则AH的第3位为0,否则为1。ANDAH, 08H;按位逻辑与,影响标志位SF、ZF、PF,OF=0,CF=0。AF不定。;检测第3位是否为1。;若第3位为1,则SF=0(逻辑与结果的最高位为0)、ZF=0(逻辑与结果不等于0)、PF=0(逻辑与结果的第3位为1,其余位为0)。;若第3位为0,则SF=0(逻辑与结果的最高位仍为0)、ZF=1(逻辑与结果等于0)、PF=1(逻辑与结果的所有位均为0)JP/JPEZEROJE/JZZEROMOVAH, 0FFHJMPNEXTZERO:MOVAH, 0NEXT:【分析】DATA1SEGMENTDA6DB01HDA7DB01HDISP1DBOK,13,10,$DISP2DBDifferent,13,10,$DATA1ENDSCODE1SEGMENTMAINPROCFARASSUMECS:CODE1,DS:DATA1,ES:DATA1START:PUSHDSSUBAX, AXPUSHAXMOVAX, DATA1MOVDS, AXMOVES,AXMOVAH, DA6MOVAL, DA7XORAH, ALANDAH, 08HJPZEROLEADX, DISP2JMPNEXTZERO:LEA DX, DISP1NEXT:MOVAH,09HINT21HRETMAINENDPCODE1ENDSENDSTART5-19试用两条指令完成对寄存器AH和AL分别加1,且AL中加1形成的进位加在AH的最低位,AH中加1形成的进位加在AL的最低位。【分析】 ADD AX , 0101H ADC AL , 0 5-20在数据段中有一个九九乘法表,乘数和被乘数分别在两个字节单元中。试编制一个程序,用查表法求出1位数的乘积。【分析】DATA SEGMENT TAB1 DB 1,2,3,4,5,6,7,8,9 TAB2 DB 2,4,6,8,10,12,14,16,18 TAB3 DB 3,6,9,12,15,18,21,24,27 TAB4 DB 4,8,12,16,20,24,28,32,36 TAB5 DB 5,10,15,20,25,30,35,40,45, TAB6 DB 6,12,18,24,30,36,42,48,54 TAB7 DB 7,14,21,28,35,42,49,56,63 TAB8 DB 8,16,24,32,40,48,56,64,72 TAB9 DB 9,18,27,36,45,54,63,72,81 MUL1 DB 3 MUL2 DB 6 PROD DB 0 DATA ENDS 解:MOV BX, OFFSET TAB1 MOV DL, MUL1 ;列DEC DL MOV DH, 00H ADD BX. DX MOV AL, MUL2 ;行DEC AL MUL AL, 9 ADD AL, DL ADD BX, AX MOV AL,BX MOV PROD,AL 5-21试编制一个程序,把DA_BY1字节存储单元的8位二进制数分解成3个八进制数,其中高位八进制数存放在DA_BY2字节存储单元,最低位八进制数存放在DA_BY2+2字节存储单元。数据单元定义如下:DA_BY1DB6BHDA_BY2DB3 DUP(0)【分析】LEA DI , DA_BY2+2 MOV AL , DA_BY1 XOR AH , AH MOV DL , 3 MOV CL , 3 SHL AX , 3 ;做准备LOP: SHR AX , CL PUSH AX AND AL , 7 MOV DI , AL DEC DI DEC DL POP AX JNZ LOP 5-22设平面上有一点P,其直角坐标为(x,y),试编制完成以下操作的程序。若P点落在第i象限,则K单元i(1,2,3,4)。若P点落在坐标轴上,则K单元0。【分析】5-23试编制一个程序,统计DA_WORD数据区中正数、0、负数的个数。数据定义如下。DA_WORDDW -1, 3, 5, 0, -5, -7, 4,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水库应急排洪方案
- 水粉基础知识培训课件
- 施工区域物品堆放与管理方案
- 混凝土耐久性检测与技术管理方案
- 糖尿病口腔医41课件
- 智算中心数据集成与清洗方案
- 水的奥秘课件
- 医学模式及其转变73课件
- 新教材2025人教版八年级上册 全部单词默写版
- 2025版电影制片人投资合作协议范本
- 矿山用电安全知识培训课件
- 《落实主体责任》课件
- 收到美因基因检测报告痛风
- 2016届年第二届天津市大学生化学竞赛理论知识个人赛试卷
- 通勤车租赁投标方案(技术标)
- 一人一档安全管理资料
- 东峰煤矿煤层资源储量估算分析
- 2022年临沧市市级单位遴选(选调)考试真题
- 评估量表模板
- 河北省医疗保险诊疗项目目录
- 三相异步电动机正反转说课课件
评论
0/150
提交评论