1、数据段中变量名为VAL 的偏移地址值为0030H,试说明以下源操作数字段的寻址方式是什么?物理地址值是多少?1MOV AX,100H 2MOV AX,VAL 3MOV AX,BX4MOV AX,ES:BX 5MOV AX,SI 6MOV AX,BX+10H7MOV AX,BP 8MOV AX,VALBPSI9MOV AX,VALBXDI 10MOV AX,BPDI1直接,10100H 2直接,10030H 3存放器间接,10100H4存放器间接,20100H 5存放器间接,100A0H 6存放器相对,10110H7存放器间接,35200H 8相对基址变址,352D0H9相对基址变址,10154
2、H 10基址变址,35224H4. 写出以下指令的机器码1MOV AL,CL 2MOV DX,CX 3MOV BX+100H,3150H110001010 11000001B210001011 11010001B311000111 10000111 00000000 00000001 01010000 00110001B5. 程序的数据段为:DATA SEGMENTA DB $,10HB DB COMPUTERC DW 1234H, 0FFHD DB 5 DUP(?)E DD 1200459AHDATA ENDS求以下程序段执行后的结果是什么。MOV AL, AMOV DX, CXCHG DL
3、, AMOV BX, OFFSET BMOV CX, 3BXLEA BX, DLDS SI, ELES DI, EMOV AL, A AL=24HMOV DX, C DX=1234HXCHG DL, A DL=24H, A=34HMOV BX, OFFSET B BX=2MOV CX, 3BX CX=5550HLEA BX, D BX=000EHLDS SI, E DS=1200H, SI=459AHLES DI, E ES=1200H, DI=459AH6. 指出以下指令中哪些是错误的,错在什么地方。1MOV DL,AX 2MOV 8650H,AX 3MOV DS,0200H4MOV BX,
4、1200H 5MOV IP,0FFH 6MOV BX+SI+3,IP7MOV AX,BXBP 8MOV AL,ES:BP 9MOV DL,SIDI10MOV AX,OFFSET 0A20H 11MOV AL,OFFSET TABLE12XCHG AL,50H 13IN BL,05H 14OUT AL,0FFEH1长度不匹配 2立即数不能做目的操作数3段存放器不能用立即数赋值 4两个内存单元不能直接传送数据5IP 不能用指令直接修改 6指令中不能出现 IP7BX/BP 应与 SI/DI 搭配 8正确9SI/DI 应与 BX/BP 搭配 10OFFSET 后应跟内存单元11偏移地址为16 位,AL
5、 长度不够 12立即数不能用于XCHG13IN 必须用 AL/AX 14操作数顺序反向;地址应为 8 位7. 当前数据段中有一个十进制数字09 的7 段代码表,其数值依次为40H,79H,24H,30H,19H,12H,02H,78H,00H,18H。要求用XLAT 指令将十进制数57 转换成相应的7 段代码值,存到BX 存放器中,试写出相应的程序段。 DATA SEGMENTTABLE DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,18HMOV AL,5MOV BX,OFFSET TABLEXLAT TABLEMOV CL,ALMOV AL,7MOV BL,A
6、LMOV BH,CL8. 当前SS=1050H,SP=0100H,AX=4860H,BX=1287H,试用示意图表示执行以下指令过程中,堆栈中的内容和堆栈指针SP 是怎样变化的。PUSH AXPUSH BXPOP BXPOP AX1指9. 以下指令完成什么功能?1ADD AL,DH 2ADC BX,CX 3SUB AX,2710H4DEC BX 5NEG CX 6INC BL7MUL BX 8DIV CL1AL+DHAL 2BX+CX+CFBX 3AX-2710HAX_4BX-1BX 50-CXCX 6BL+1BL7AX*BXDX,AX 8AX/CL 商AL,余数AH10. AX=2508H,
7、BX=0F36H,CX=0004H,DX=1864H,求以下每条指令执行后的结果是什么?标志位CF 等于什么?1AND AH,CL 2OR BL,30H 3NOT AX4XOR CX,0FFF0H 5TEST DH,0FH 6CMP CX,00H7SHR DX,CL 8SAR AL,1 9SHL BH,CL10SAL AX,1 11RCL BX,1 12ROR DX,CL1AX=0408H,CF=0 2BX=0F36H,CF=03AX=0DAF7H,CF 不变 4CX=0FFF4H,CF=05DX=01864H,CF=0 6CX=0004H,CF=07DX=0186H,CF=0 8AX=250
8、4H,CF=09BX=0F036H,CF=0 10AX=4A10H,CF=011BX=1E6C/1E6DH,CF=0 12DX=4186H,CF=011. 假设数据段定义如下:STRING DB The Personal Computer & TV试用字符串操作等指令编程完成以下功能:1把该字符串传送到附加段中偏移量为GET_CHAR 开始的内存单元中。2比拟该字符串是否与The Computer相同,假设相同那么将AL 存放器的内容置1,否那么置0。并要求将比拟次数送到BL 存放器中。3检查该字符串是否有&,假设有那么用空格字符将其替换。4把字符串大写字母传送到附加段中以CAPS 开始的单元
9、中,其余字符传到以CHART开始的单元中。然后将数据段中存储上述字符串的单元清0。1 CLDLEA SI,STRINGLEA DI,GET_CHARMOV CX,26REP MOVSB2补充在附加段定义STRING1 DB The computerMOV AL,1CLDLEA DI,STRING1MOV CX,12REPZ CMPSBJZ SKIPMOV AL,0SKIP: MOV BX,12SUB BX,CX3 MOV AX, DATAMOV ES, AXMOV AL,&LEA DI,STRINGNEXT: REPNE SCASBJZ FINDJMP EXITFIND: MOV BYTE P
10、TR DI-1, JCXZ EXITJMP NEXTEXIT:4 LEA SI,STRINGLEA DI,CAPSLEA BX,CHART MOV AL, SICMP AL,AJB OTHERCMP AL,ZJA OTHERMOV ES:DI,ALINC DIJMP SKIPOTHER: MOV ES:BX,ALINC BX MOV BYTE PTRSI,0INC SILOOP NEXT12. 编程将AX 存放器中的内容以相反的顺序传送到DX 存放器中,并要求AX 中的内容不被破坏,然后统计DX 存放器中1的个数是多少。: MOV BL,0MOV DX,0MOV CX,16 SHL AX,1J
11、NC SKIPINC BL RCR DX,1STOP: POP AX13. 设CS=1200H,IP=0100H,SS=5000H,SP=0400H,DS=2000H,SI=3000H,BX=0300H,20300H=4800H,20302H=00FFH,TABLE=0500H,PROG_N 标号的地址为1200:0278H,PROG_F 标号的地址为3400H:0ABCH。说明以下每条指令执行完后,程序将分别转移到何处执行?1JMP PROG_N2JMP BX3JMP BX4JMP FAR PROG_F5JMP DWORD PTR BX如将上述指令中的操作码JMP 改成CALL,那么每条指令执行完后,程序转向何处执行?并请画图说明堆栈中的内容和堆栈指针如何变化。11200H:0278H21200H:0300H31200H:4800H43400H:0ABCH500FFH:将操作码JMP 改成CALL 后:指令长度为3,那么IP=0100H+3=0103H,入栈指令长度为2,那么I
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1