①MOVBX,OFFSETX1指令执行后,BX中的内容是()P95A. 25B.0100HC.0000HD.“25'②汇编后Y2的值是()P97A. 4B. 5C. 3D. 6@ MOVY1+1指令执行后,AL中的内容是(AL,A.19HB. 01HC. 35HD.32H(7)设数据段定义如下:DATASEGMENTNAEQU1510NBEQUNCDB2DUP(4,2DUP(5,2))CNTDB$-NCDWCWT$-CNTNDDWNCDATAENDS①从DS:0000开始至CNT单元之前存放的数据依次是()。P95A.15、10、4、5、2、5、2、4、5、2、5、2B.15、10、4、2、5、2、4、2、5、2C.OFH、0AH、4、5、2、5、2D.4、5、2、5、2、4、5、2、5、2②ND单元中的值是()。P98A.0000HB.0200HC.0003HD.0002H③CWT单元中的值是()。P99A. 2B.1C. 11D. 12(8)已知:VARDW1,2,S+2,5,6,若汇编VAR分配的偏移地址是0010H,汇编0014H)。单元的内容是(C. 16HA.05HB. 06HD. 14H(9)使用8086/8088汇编语言的伪操作命令定义:P97VARDB 2DUP(1,2,3DUP(3),2DUP(1,0))则在VAL存储区前十个字节单元的数据是()。A.1、2、3、3、2、1、0、1、2、3B.1、2、3、3、3、3、2、1、0、1C.2、1、2、3、3、2、1、0、2、1D.1、2、3、3、3、1、0、1、0、1(10)在汇编语言程序设计中,保护现场的合理且优化的做法是(1A.将子程序中要使用而不允许破坏的寄存器及内存单元加以保护B将主、子程序间传递信息的寄存器加以保护C.将所有寄存器加以保护D.将子程序中要使用的所有寄存器加以保护2.填空题26
26 ① MOV BX,OFFSET X1 指令执行后,BX中的内容是( )P95 A.25 B.0100H C.0000H D.‘25’ ② 汇编后Y2的值是( )P97 A.4 B.5 C.3 D.6 ③ MOV AL,Y1+1 指令执行后,AL中的内容是( ) A.19H B.01H C.35H D.32H (7)设数据段定义如下: DATA SEGMENT NA EQU 15 NB EQU 10 NC DB 2 DUP (4,2 DUP (5,2)) CNT DB $-NC CWT DW $-CNT ND DW NC DATA ENDS ① 从 DS:0000 开始至 CNT 单元之前存放的数据依次是( )。P95 A.15、10、4、5、2、5、2、4、5、2、5、2 B.15、10、4、2、5、2、4、2、5、2 C.0FH、0AH、4、5、2、5、2 D.4、5、2、5、2、4、5、2、5、2 ② ND 单元中的值是( )。P98 A.0000H B.0200H C.0003H D.0002H ③ CWT 单元中的值是( )。P99 A.2 B. 1 C.11 D.12 (8)已知:VAR DW 1,2,$+2,5,6,若汇编 VAR 分配的偏移地址是 0010H,汇编 0014H 单元的内容是( )。 A.05H B.06H C.16H D.14H (9)使用 8086/8088 汇编语言的伪操作命令定义:P97 VAR DB 2 DUP (1,2,3 DUP (3),2 DUP (1,0)) 则在 VAL 存储区前十个字节单元的数据是( )。 A.1、2、3、3、2、1、0、1、2、3 B.1、2、3、3、3、3、2、1、0、1 C.2、1、2、3、3、2、1、0、2、1 D.1、2、3、3、3、1、0、1、0、1 (10)在汇编语言程序设计中,保护现场的合理且优化的做法是( ) A.将子程序中要使用而不允许破坏的寄存器及内存单元加以保护 B.将主、子程序间传递信息的寄存器加以保护 C.将所有寄存器加以保护 D.将子程序中要使用的所有寄存器加以保护 2.填空题
(1)在宏汇编中,源程序必须通过生成目标代码,然后由连接程序将其转化为可执行文件,该文件才可在系统中运行。(2)被用来表示指令在程序中位置的符号地址。(3)用来把汇编语言源程序自动翻译成目标程序的软件叫0送到AX中。(4)指令MOVAX,SEGBUF的执行,将(5)若定义DATADW200AH,执行MOVBL,BYTEPTRDATA指令后(BL)=(6)指令中用于说明操作数所在地址的方法,称为(7)试分析下述程序段执行后,(AX)=、(BX)=XORAX, AXAXDECMOVBX,6378HXCHGAX,BXBXNEG(8)3.伪指令如下:DAT1DW?,18DUP(9)DBDAT21,2,3,4DAT3DD?,?CNT1EQU$-DAT2CNT2EQU$-DAT3分析CNT1、CNT2的值以及上述数据定义占用内存的字节数。4.执行下列指令段后,AX和CX的内容分别是多少?BUFDB1,2,3,4,5,6,7,8,9,10CX, 10MOVMOVSI,OFFSETBUF+9LEADI,BUF+10STDREPMOVSBMOVBX,OFFSETBUFMOVAX, [BX]5.如果用调试程序DEBUG的R命令在终端上显示当前各寄存器的内容如下,请说明当前堆栈段段基址是多少?栈顶的物理地址是多少?P27C>DEBUG-RAX=0000BX=0000CX=0079DX=0000SP=FFEEBP=0000SI=0000DI=0000NVUPDIPLDS=10E4ES=10F4SS=21F0CS=31FF IP=0100NZ NA PO NC6.分析下列程序段执行后,AX寄存器的内容是什么?TABLEDW10H,20H,30H,40H,50H,60H,70H,80H27
27 (1)在宏汇编中,源程序必须通过_生成目标代码,然后由连接程序将其转化为 可执行文件,该文件才可在系统中运行。 (2)_被用来表示指令在程序中位置的符号地址。 (3)用来把汇编语言源程序自动翻译成目标程序的软件叫_。 (4)指令 MOV AX,SEG BUF 的执行,将_送到 AX 中。 (5)若定义 DATA DW 200AH,执行 MOV BL,BYTE PTR DATA 指令后(BL)= _。 (6)指令中用于说明操作数所在地址的方法,称为_。 (7)试分析下述程序段执行后,(AX)=_、(BX)=_。 XOR AX,AX DEC AX MOV BX,6378H XCHG AX,BX NEG BX (8) 3.伪指令如下: DAT1 DW ?,18 DUP(9) DAT2 DB 1,2,3,4 DAT3 DD ?,? CNT1 EQU $-DAT2 CNT2 EQU $-DAT3 分析 CNT1、CNT2 的值以及上述数据定义占用内存的字节数。 4.执行下列指令段后,AX 和 CX 的内容分别是多少? BUF DB 1,2,3,4,5,6,7,8,9,10 MOV CX,10 MOV SI,OFFSET BUF+9 LEA DI,BUF+10 STD REP MOVSB MOV BX,OFFSET BUF MOV AX,[BX] 5.如果用调试程序 DEBUG 的 R 命令在终端上显示当前各寄存器的内容如下,请说明当前 堆栈段段基址是多少?栈顶的物理地址是多少? C>DEBUG P27 -R AX=0000 BX=0000 CX=0079 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=10E4 ES=10F4 SS=21F0 CS=31FF IP=0100 NV UP DI PL NZ NA PO NC 6.分析下列程序段执行后,AX 寄存器的内容是什么? ...... TABLE DW 10H,20H,30H,40H,50H,60H,70H,80H
ENTRYDW6......MOVBX,OFFSETTABLEADDBX,ENTRYMOVAX,[BX]7.试分析下列程序段执行后,AX和DX寄存器的内容分别是什么?......VAR186HDBVAR2DW2005H,0021H,849AH,4000H....MOVAL,VAR1CBWLEABX,VAR2MOVDX, 2[BX]SUBAX, DX8.试分析下列程序段,回答所提问题。ORG3000HDB11H,12H,13H,14H,15H....MOVBX,3000HSTCADCBX,1SALBL, 1INCBYTEPTR[BX](1)程序段执行后,3004H单元中的内容是什么?(2)程序段执行后,BX中的内容是什么?CF的值是1还是0?9.对于下面的数据定义,各条MOV指令单独执行后,请填充有关寄存器的内容:DBTABLE101H,02HTABLE2DWDUP (0)10TABLE3DB“WELCOME'MOVAX,TYPETABLE1(AX)=:MOVBX,LENGTHTABLE1(BX)=:MOVCX,LENGTHTABLE2(CX)=:MOVDX,SIZETABLE2(DX)=:MOVSI,LENGTHTABLE3:(SI)=10.当执行以下程序后,AX、CX、DX中的值分别是多少?BX、CODESEGMENTASSUME CS: CODE,DS:CODE,SS:CODEORG100HAX, 01HBEGIN:MOV28
28 ENTRY DW 6 ...... MOV BX,OFFSET TABLE ADD BX,ENTRY MOV AX,[BX] 7.试分析下列程序段执行后,AX 和 DX 寄存器的内容分别是什么? ...... VAR1 DB 86H VAR2 DW 2005H,0021H,849AH,4000H ...... MOV AL,VAR1 CBW LEA BX,VAR2 MOV DX,2[BX] SUB AX,DX 8. 试分析下列程序段,回答所提问题。 ORG 3000H DB 11H,12H,13H,14H,15H ...... MOV BX,3000H STC ADC BX,1 SAL BL,1 INC BYTE PTR [BX] (1)程序段执行后,3004H 单元中的内容是什么? (2)程序段执行后,BX 中的内容是什么?CF 的值是 1 还是 0? 9.对于下面的数据定义,各条 MOV 指令单独执行后,请填充有关寄存器的内容: TABLE1 DB 01H,02H TABLE2 DW 10 DUP(0) TABLE3 DB ‘WELCOME’ MOV AX,TYPE TABLE1 ; (AX)=_ MOV BX,LENGTH TABLE1 ; (BX)=_ MOV CX,LENGTH TABLE2 ; (CX)=_ MOV DX,SIZE TABLE2 ; (DX)=_ MOV SI,LENGTH TABLE3 ; (SI)= _ 10.当执行以下程序后,AX、BX、CX、DX 中的值分别是多少? CODE SEGMENT ASSUME CS:CODE, DS:CODE, SS:CODE ORG 100H BEGIN:MOV AX,01H
MOVBX,02HMOVDX, 03HMOVCX, 04H:INCAXL20:ADD BX,AXSHR DX, 1LOOPNEL20CODEENDSEND BEGIN11.下列为将两位压缩BCD码转换为两个ASCII字符的程序段,将合适的指令填入空白处,形成正确的程序段。DBBCDBUF46HDB?,?ASCBUFMOVAL,MOVBL,ALMOVCL,4BL,CLBL,ADDMOVASCBUF,BLMOVASCBUF+1,AL12.在数据段中,WEEK是星期一~星期日的英语缩写,DAY单元中存有一数,范围在1~7之间(1表示星期一,7表示星期日)。WEEKDB“MON',“TUE',“WED',“THU',“FRI',“SAT',“SUN”DAYDBX;数字1~7编写程序,使其能根据DAY的内容用单个字符显示功能调用(2号功能)去显示对应的英文缩写。13.设在DAT单元存放一个一9~十9的字节数据,在SQTAB数据区中存放了0~9的平方值,下面程序段利用直接查表法在SQRTAB中查找出DAT单元中数据对应的平方值送SQR单元。请补充空格处,完善程序功能。DSEGSEGMENTDATDBXXH表示在一9~十9之间的任意字节数据XXH:DBSQTAB0,1,4,9,...81SQRDB?ENDSDSEGSSEGSEGMENTSTACKSTKDB100DUP(?)SSEGENDS29
29 MOV BX,02H MOV DX,03H MOV CX,04H L20: INC AX ADD BX, AX SHR DX,1 LOOPNE L20 CODE ENDS END BEGIN 11.下列为将两位压缩 BCD 码转换为两个 ASCII 字符的程序段,将合适的指令填入空白处, 形成正确的程序段。 BCDBUF DB 46H ASCBUF DB ?,? MOV AL, _ MOV BL, AL MOV CL, 4 _ BL, CL ADD BL, _ MOV ASCBUF,BL _ _ MOV ASCBUF+1,AL 12.在数据段中,WEEK 是星期一~星期日的英语缩写,DAY 单元中存有一数,范围在 1~7 之间(1 表示星期一,7 表示星期日)。 WEEK DB ‘MON’,‘TUE’,‘WED’,‘THU’,‘FRI’,‘SAT’,‘SUN’ DAY DB X ;数字 1~7 编写程序,使其能根据 DAY 的内容用单个字符显示功能调用(2 号功能)去显示对应的英 文缩写。 13.设在 DAT 单元存放一个-9~+9 的字节数据,在 SQTAB 数据区中存放了 0~9 的平方 值,下面程序段利用直接查表法在 SQRTAB 中查找出 DAT 单元中数据对应的平方值送 SQR 单元。请补充空格处,完善程序功能。 DSEG SEGMENT DAT DB XXH ; XXH 表示在-9~+9 之间的任意字节数据 SQTAB DB 0,1,4,9,...81 SQR DB ? DSEG ENDS SSEG SEGMENT STACK STK DB 100 DUP (?) SSEG ENDS
CSEGSEGMENTASSUMECS:CSEG,DS:DESG,SS:SSEGMOVAX,DSEGSTART:MOVDS,AXMOVAL,DATANDAL,JNSNEXTNEXT:MOVBX,OFFSETSQRTABMOVSQR,ALMOVAH,4CH21HINTENDSDESGENDSTART14.设内存中有三个互不相等的无符号字数据,分别存放在DATA开始的字单元中,编程将其中最小值存入MIN单元。15.设计将数字符ASCII码串转换成BCD码串的子程序,要求转换后的BCD码顺序和ASCII码顺序相反。16.编写程序在一组字符串中寻找‘AM”的出现次数,该串的前缀字符为“PROG”,并以Ctrl+Z(1AH)结束,统计结果存入字变量NUM中。17.下述程序段执行后,AH和AL寄存器中内容是多少?DA_CDB10DUP(3,5,7,9)LEABX,1DA_CMOVCX,10XORAX, AXLP:ADDAL,[BX]CMPAL,10JBNEXTINCAHSUBAL,10BXNEXT:INCLPLOOP18.阅读下列程序,回答问题。DSEGSEGMENTMUM1DB300DUP(2)NUM2DB100 DUP (?)ENDSDSEGCSEGSEGMENTASSUMECS:CSEG, DS:DSEG30
30 CSEG SEGMENT ASSUME CS:CSEG,DS:DESG,SS:SSEG START: MOV AX,DSEG MOV DS,AX MOV AL,DAT AND AL,_ JNS NEXT _ NEXT: MOV BX,OFFSET SQRTAB _ MOV SQR,AL MOV AH,4CH INT 21H DESG ENDS END START 14.设内存中有三个互不相等的无符号字数据,分别存放在 DATA 开始的字单元中,编程将 其中最小值存入 MIN 单元。 15.设计将数字符 ASCII 码串转换成 BCD 码串的子程序,要求转换后的 BCD 码顺序和 ASCII 码顺序相反。 16.编写程序在一组字符串中寻找‘AM’的出现次数,该串的前缀字符为‘PROG’,并以 Ctrl+Z(1AH)结束,统计结果存入字变量 NUM 中。 17.下述程序段执行后,AH 和 AL 寄存器中内容是多少? DA_C DB 10 DUP (3,5,7,9) LEA BX,DA_C MOV CX,10 XOR AX,AX LP: ADD AL,[BX] CMP AL,10 JB NEXT INC AH SUB AL,10 NEXT:INC BX LOOP LP 18.阅读下列程序,回答问题。 DSEG SEGMENT MUM1 DB 300 DUP (?) NUM2 DB 100 DUP (?) DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG