1、1微机原理及应用 汇编语言程序设计第 32 讲第 38 讲0.80.86若有以下变量定义,请说明下面的程序执行后,AX 的内容是什么?TABLE DW 40,50,20,30ENTRY DW 3MOV BX, OFFSET TABLEADD BX,ENTRYMOV AX,BX(AX)=1400H微机原理及应用 汇编语言程序设计第 32 讲第 38 讲0.80.86分析下列程序完成的功能MOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21H使光标回车、换行微机原理及应用 汇编语言程序设计第 32 讲第 38 讲0.80.86START: MO
2、V AX,00C0HMOV DS,AX2MOV BX,0500HMOV CX,0010HAGAIN:MOV BX,BLINC BLLOOP AGAIN在上述指令串执行后,画图表示出物理地址为 0110AH0110FH 的各单元存放的内容。0AH0BH0CH 0DH0EH0FH微机原理及应用 汇编语言程序设计第 32 讲第 38 讲0.80.86分析下列程序完成的功能MOV AL,05HSHL AL,1MOV BL,ALMOV CL,03HSHL AL,CLADD AL,BL将 518 的值存到 AL 中微机原理及应用 汇编语言程序设计第 32 讲第 38 讲0.80.86已有 BUF DB 0
3、DH 定义,分析下列程序段3MOV AL,BUFCALL FAR PTR HECAOK: HECA PROC FARPUSH AXCMP AL,10JC K1ADD AL,7K1:ADD AL,30HMOV DL,ALPOP AXRETHECA ENDP问 写出子程序 HECA 的说明文件。 程序执行到 OK 处, (DL)= H 子程序 HECA 的说明文件:子程序名:HECA子程序功能:将 AL 中的一位 16 进制数转换为对应的字符的 ASCLL 码入口参数:被转换的字符在 AL 中出口参数:转换后的结果在 DL 中用到的寄存器:无 程序执行到 OK 处, (DL)=44H微机原理及应用
4、 汇编语言程序设计第 32 讲第 38 讲0.80.86有程序段:MOV DX,5678HMOV BX,1234HPUSH BXPUSH DXPUSH BP MOV BP,SP4MOV AX,BP+4POP BP POP DX POP BX 指出执行后(AX)= H。指出执行后(AX)=1234H微机原理及应用 汇编语言程序设计第 32 讲第 38 讲0.80.86分析下列程序段,说明完成了什么操作?程序执行前后,HEXNUM 字节单元的内容是什么?ASCNUM DB 41HHEXNUM DB ?MOV AH,ASCNUMCMP AH,39HJBE NEXTSUB AH,7NEXT: SUB
5、AH,30HMOV HEXNUM,AHHLT程序完成的功能为:将 ASCNUM 单元的字符转换成对应的一位 16 进制数,并将转换后的结果存到 HEXNUM 单元。HEXNUM 字节单元的内容为:0AH微机原理及应用 汇编语言程序设计第 32 讲第 38 讲0.80.86假设程序中的数据定义如下:DATA1 DW ?DATA2 DB 32 DUP (?)DATA3 DD ?DLENGTH EQU $ -DATA15问 DLENGTH 的值为多少?它表示什么意义?DLENGTH 的值为:40它表示 DAT1DAT3 变量所占的字节数微机原理及应用 汇编语言程序设计第 32 讲第 38 讲0.80
6、.86分析以下程序段完成的功能SUB1 PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXMOV CX, 00FFHAGAIN: NOPLOOP AGAINPOP DXPOP CXPOP BXPOP AXRETSUB1 ENDP延时微机原理及应用 汇编语言程序设计第 32 讲第 38 讲0.80.86下面这段程序完成的功能为从键盘输入一串字符,将其送到 KEYBUF1 缓冲区,并显示这组字符串。请在划线处填入必要指令或伪指令,使以下程序完整。STACK SEGMENT STACKDB 256 DUP(?)STACK ENDS6DATA SEGMENTSTRING1 DB
7、 DO YOU WANT TO INPUT STRING?(Y/N):$CRLF DB 0DH,0AH,$STRING2 DB PLEASE INPUT STRING.,0DH,0AH,$KEYBUF1 DB 20HDB ?KEYBUF2 DB 20H DUP(?)CODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AH,09HLEA DX,STRING1INT 21HMOV AH,01HINT 21HCMP AL,YJE INPUTCMP AL,yINPUT:LEA DX,CRLFMOV AH,09HINT 21HMOV AH,09HMOV DX,OFFSET
8、 STRING2INT 21HMOV DX,OFFSET KEYBUF1INT 21HMOV AL,KEYBUF1+1CBW LEA SI,KEYBUF2ADD SI,AX7MOV BYTE PTRSI,$MOV AH,09HLEA DX,CRLFINT 21HMOV AH,09HINT 21HDONE: MOV AH,4CHINT 21HEND START共 6 个划线,其中:第一个划线处为:DATA ENDS第二个划线处为:ASSUME CS:CODE,DS:DATA, SS:STACK第三个划线处为:JNE DONE第四个划线处为: MOV AH,0AH第五个划线处为:MOV DX,OF
9、FSET KEYBUF2第六个划线处为:CODE ENDS微机原理及应用 汇编语言程序设计第 32 讲第 38 讲0.80.86DABUF DB 09H,05H,04HMOV BL,2NEXT:MOV CX,3XOR SI,SIAGAIN:MOV AL,DABUFSIAND AL,0FHOR AL,30HMOV AH,02HMOV DL,ALINT 21HINC SI8LOOP AGAINDEC BLJNZ NEXT指出该程序段完成的功能该程序段完成的功能:将 DABUF 以下 3 个数在屏幕上显示出来微机原理及应用 汇编语言程序设计第 32 讲第 38 讲0.80.86已知有 100 个 8
10、 位无符号数已存放在缓存区 INX 中, FUNCY2 子程序的功能是对这 100 个数据由高到低排序。请在划线处填入必要指令,使以下子程序完整。FUNCY2 PROC NEARPUSH AXMOV CH ,100-1B10: LEA SI ,INXDEC CL ,CHB20: MOV AL ,SICMP AL ,SI+1XCHG AL, SI+1B30: INC SIDEC CLJNZ B20DEC CHPOP AXRETFUNCY2 ENDP共 3 个划线,其中:第一个划线处为:JAE B30第二个划线处为:MOV SI,AL第三个划线处为:JNZ B10 9微机原理及应用 汇编语言程序设
11、计第 32 讲第 38 讲0.80.86已知 N(3N100)个 8 位无符号数已存放在缓存区 INX 中,其中第一个字节存放个数 N,从第二字节开始存放数据,FUNCY2 子程序的功能是对这 N 个数据由高到低排序。FUNCY2 PROC NEARLEA SI ,INXXOR CX ,CXMOV CL ,SIDEC CXB10: PUSH SI PUSH CXMOV AL ,SIB20: CMP AL ,SI+1XCHG AL, SI+1B30: INC SILOOP B20POP CXPOP SIRETFUNCY2 ENDP共 4 个划线,其中:第一个划线处为:INC SI第二个划线处为:JAE B30 第三个划线处为:MOV SI,AL 第四个划线处为:LOOP CX微机原理及应用 汇编语言程序设计第 32 讲第 38 讲0.8100.86分析下列程序完成的功能: MOV AX,SEG BUFFER1MOV DS,AXMOV AX,SEG BUFFER2MOV ES,0010HMOV SI,OFFSET BUFFER1MOV DI,OFFSET BUFFER2MOV CX,1024CLDREP MOVSB 程序完成的功能:将 BUFFER1 以下 10H 个字符传送到 BUFFER2