《汇编语言程序设计》作业习题_第1页
《汇编语言程序设计》作业习题_第2页
《汇编语言程序设计》作业习题_第3页
《汇编语言程序设计》作业习题_第4页
《汇编语言程序设计》作业习题_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《汇编语言程序设计》作业习题第1章汇编语言基础知识习题1.1什么是汇编语言?汇编语言的特点是什么?1.2把下列十进制数转换成二进制数、八进制数、十六进制数。①127 ②1021 ③0.875 ④6.25把下列二进制数转换成十进制数。①1001.11 ②101011.10011 ③111.011 ④1011.11.4把下列八进制数转换成十进制数。①573.06 ②75.23 ③431.7 ④123.451.5把下列十六进制数转换成十进制数。①0D5.F4 ②8BA.7C③0B2E.3A ④6EC.2D1.6把下列英文单词转换成ASCII编码的字符串。①Upper ②Blow ③Computer ④What1.7求下列带符号十进制数的8位基2码补码。①+127 ②−2 ③−128 ④+21.8求下列带符号十进制数的16位基2码补码。①+628 ②−9 ③−1234 ④+32491.9下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。①68+(―53)②68―53③68―(―53)④(―68)―531.10汉字在输入、存储、输出过程中所使用的汉字编码是否一样?使用的是什么编码?第2章IBM-PC系统结构习题2.1什么是微型计算机?微型计算机主要由哪几部分组成?其主要功能是什么?2.28086/8088CPU由哪两部分组成?它们的主要功能是什么?2.38086/8088CPU有哪些寄存器?各有什么用途?2.48086/8088CPU哪些寄存器可以用来指示存储器地址?2.5标志寄存器中有哪些状态标志和控制标志?它们每一位所表示的含义是什么?2.6有两个16位数3A4BH和10EFH分别存放在2000H和2004H存储单元中,请用图表示出它们在存储器里的存放情况。2.7一个存储单元的物理地址、段地址、偏移地址三者之间有何关系?2.8在DEBUG程序中,一条指令语句表示为2000:0030MOVAL,8。请问:段地址、偏移地址和物理地址分别为多少?存放段地址和偏移地址的寄存器是哪两个?第3章_80868088寻址方式和指令系统寻址方式和指令系统习题一、填空3.1指出下列指令源操作数的寻址方式: MOV AX,ARRAY[SI] ; MOV AX,ES:[BX] ; MOV AX,[100] ; MOV AX,[BX+DI] ; MOV AX,BX ; MOV AX,2000H ; MOV AX,ARRAY[BX][SI] ; MOV AX,[DI+20H] ;3.2假设(SP)=100H,(SS)=1000H,执行PUSH BP指令后,栈顶的物理地址是。3.3段地址和偏移地址为3FFFH:1234H,它的物理地址是,段地址和偏移地址为1000H:000FH,它的物理地址是。3.4若要测试AL寄存器中操作数的第0,3,4,7位是否均为0,然后根据测试结果实现条件转移,可使用指令,以产生转移条件。这条指令执行后将影响的标志位是。3.5现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(21203H)=65H,下列指令执行后AX寄存器的内容: MOV AX,1200H ;(AX)= MOV AX,BX ;(AX)= MOV AX,[1200H] ;(AX)= MOV AX,[BX] ;(AX)= MOV AX,1100H[BX] ;(AX)= MOV AX,[BX][SI] ;(AX)= MOV AX,1100H[BX+SI] ;(AX)=3.6设(BX)=101H,(DS)=2100H,(CS)=1900H,内存中(21101H)=0C7H,(21102H)=0FFH,(21103H)=00H,(21104H)=0F0H,执行如下指令后CS和IP寄存器的值是多少? JMP BX ;(CS)=,(IP)= JMP [BX] ;(CS)=,(IP)= JMP WORDPTR[BX+1] ;(CS)=,(IP)= JMP DWORDPTR[BX] ;(CS)=,(IP)=3.7试根据以下要求写出相应的汇编语言指令。⑴把BX寄存器和DX寄存器内容相加,结果存入DX寄存器中,汇编语言指令:;⑵用寄存器BX和SI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中。汇编语言指令:;⑶用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器内容相加,并把结果送回到存储器中。汇编语言指令:;⑷用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回存储单元中。汇编语言指令:;⑸把数0B5H与AL寄存器内容相加,并把结果送回AL寄存器中。汇编语言指令:;3.8指令SAR可用来除2,而指令SHR可用来除2。3.9条件转移指令的目标地址应在本条指令的下一条指令的个字节范围内。3.10执行指令XOR AX,AX的含义是和。3.11一个有16个字的数据区,它的起始地址为70A0H:DDF6H,那么该数据区的最后一个字单元的物理地址为H。3.12串处理指令规定源寄存器使用,源串在段中;目的寄存器使用,目的串必须在段中。3.13执行加法指令时,如果两个操作数的符号相同,而结果的符号与之相反,则OF=;执行减法指令时,如果两个操作数的符号相反,而结果的符号与减数相同,则OF=。3.14数据串传送指令执行前应做、、、四项准备工作。二、选择题(可多选)3.15基址寄存器的内容、变址寄存器的内容以及指令中指定的位移量三者之和作为操作数的有效地址,它的寻址方式是。A、直接寻址方式 B、寄存器相对寻址方式C、基址变址寻址方式 D、相对基址变址寻址方式3.16完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是。A、MOVAL,00H B、ANDAL,00H C、XORAL,AL D、SUBAL,AL3.17指令TESTAL,02H的含义是。A、测试AL是否等于02H B、测试AL第二位的状态C、测试AL第一位的状态 D、将AL的第一位和02单元的各位进行测试3.188086CPU在执行8位有符号数运算后,产生溢出是结果超出了。A、0~255 B、+128~-128 C、+255~-256 D、+127~-1283.19不能改变8086程序计数指针IP的指令是。A、RET B、PUSHAX C、CALL D、JBE3.20不影响8086堆栈指针SP值的指令是。A、JMP B、PUSHAX C、POPCX D、INT21H3.218086中执行指令RET04H表示。A、返回到04H单元 B、作段间返回C、返回到当前地址后第4个单元 D、完成RET指令后SP加43.22下列不正确的指令是(DATA已定义)。A、MOV4[DI],02H B、MOVBYTEPTR4[DI],02HC、MOV4[DI],AL D、MOVDATA[DI],02H3.23假设V1和V2是用DW定义的变量,下列指令中正确的是。A、MOVV1,20H B、MOVV1,V2C、MOVAL,V1 D、MOV2000H,V23.24下列哪条指令不合法?A、INTAX,0278H B、RORDX,CL C、CMPSB D、RET43.25下列指令中,有语法错误的是。A、MOV[SI],[DI] B、INAL,DXC、JMPWPRDPTR[BX] D、PUSHWORDPTR20[BX+SI-2]3.26下列4条指令中,是错误的。A、MOVDS,2000H B、ADDDX,[BP]C、MOVAX,200 D、MOVAX,ARRAY[SI+2]3.27运算型指令的寻址和转移型指令的寻址,其不同点在于。A、前者取操作数,后者决定程序的转移地址B、后者取操作数,前者决定转移地址C、两者都是取操作数D、两者都是决定程序的转移地址3.28下列指令中操作数在代码段中的是。A、MOVAL,25H B、ADDBH,AL C、INCDS:[25H] D、CMPAL,BL3.29设(BL)=5,要使结果(BL)=0AH,应执行指令是。A、ANDBL,0FH B、NOTBL C、XORBL,0FH D、ORBL,0FH3.30指令JMPDWORDPTR[BX][SI]属于寻址。A、寄存器间接寻址 B、相对基址变址寻址C、段内转移直接寻址 D、段间转移间接寻址3.31在下列指令中,指令的执行会影响条件码的CF位。A、JMPNEXT B、JCNEXT C、INCBX D、SHLAX,13.32将累加器AX的内容清零的正确指令是。A、ORAX,0 B、XORAX,AX C、TESTAX,AX D、CMPAX,AX三、简答题3.33PUSH和POP指令有什么特点?3.34算术移位指令和逻辑移位指令有什么不同?3.35串处理指令有什么特殊规定?简述REPZCMPSB指令的执行过程。3.36完成下列操作,选用什么指令?⑴将AX的内容减去0520H和上次运算的借位;⑵将变量名TABL的段地址送AX;3.37条件转移指令和无条件转移指令有什么不同?第4章80868088汇编语言(格式)习题一、填空题4.1有关操作数的伪指令中,算术运算符有,逻辑运算符有,关系操作符有,数值运算符有,属性操作符。4.2下列两个语句的区别在于,。 X1 EQU 1000H X2=1000H假设 (DS)=3000HORG3100HTABLE DB 10,3*4,10HADDRESS DD TABLEARRAY DW 2DUP(675AH,?)写出下列各单元的内容。(3100H)= (3101H)= (3102H)=(3103H)= (3104H)= (3105H)=(3106H)= (3107H)= (3108H)=(3109H)= (310AH)= (310BH)=(310CH)= (310DH)= (310EH)=对于下面的数据定义,各条MOV指令单独执行后,请写出相关寄存器的内容。FLDBDB?

TABLEADW20DUP(?)

TABLEBDB'ABCD'(1)MOVAX,TYPEFLDB ;(AX)=

(2)MOVAX,TYPETABLEA ;(AX)=

(3)MOVCX,LENGTHTABLEA ;(CX)=(4)MOVDX,SIZETABLEA ;(DX)=

(5)MOVCX,LENGTHTABLEB ;(CX)=设X1、X2是两个已经赋值的变量,指令AND AX,X1ANDX2中,两个AND的区别是、。对于指令MOV BX,((XLT10H)AND40H)OR((XGE10H)AND50H),当X<10H时,汇编结果为MOV BX,,否则汇编结果为MOV BX,。数据定义语句BUF1 DW ?BUF2 EQU BYTEPTRBUF1当汇编后,PTR类型操作符使BUF2具有与BUF1相同的和,但类型为。是过程定义结束伪指令,与配套使用。是段定义结束伪指令,与配套使用,是一个源模块汇编结束伪指令。已知指令ARRAYDB2DUP(1DUP(?)),则该指令分配字节单元,指令MOVAX,LENGTHARRAY执行后,AX=;指令MOVAX,SIZEARRAY执行后,AX=。汇编程序产生二进制的目标文件OBJ,但OBJ还必须使用转换成可直接执行的EXE文件。在指令和伪指令中可直接使用“$”表示地址计数器的当前值,ORG伪指令后给定的数值应是一个。DB伪指令以为单位分配存储;DD伪指令以为单位分配存储。故如下数据定义:X DB 4DUP(2),2COUNT EQU 10Y DDCOUNTDUP(?)为变量X分配个字节存储;为变量Y分配个字节存储。数据段中有以下定义:ARRAY1 EQU 20HARRAY2 DW 20H指出下面两条指令的源操作数寻址方式:MOV AX,ARRAY1 ;寻址方式MOV AX,ARRAY2 ;寻址方式根据下面的指令序列,CX寄存器中的值应该是。X1 DW ‘AB’X2 DB 16DUP(?)CNT EQU $-X1…MOV CX,CNT4.15假设ES段中有一个字符串′12FG3LM5C′,其名为ARRAY,下面的程序段CLDLEA DI,ES:ARRAYMOV AL,′G′MOV CX,9REPNE SCASB执行后CX的值是二、选择题4.16表示源程序结束伪操作的格式为。A、ENDS[LABEL] B、END[LABEL] C、ENDS D、END4.17一般地,我们将计算机指令的集合称为。A、机器指令 B、伪指令 C、宏指令 D、语句4.18在汇编语言程序设计中,伪指令OFFSET表达的含义是回送变量或标号的。A、段地址值 B、偏移地址值 C、物理地址值 D、操作数4.19若定义DATDW‘A’,则DAT和DAT+1两个相邻的内存单元中存放的数据是。A、00H41H B、41H00H C、XXH41H D、41HXXH(选项C、D中的XX表示任意数据)4.20若定义DATDW‘AB’,则DAT和DAT+1两个相邻的内存单元中存放的数据是。A、42H41H B、41H42H C、62H61H D、61H62H4.21表示一条指令的存储单元的符号地址称为。A、标号 B、变量 C、偏移量 D、类型4.22现用数据定义语句定义数据:BUFDB4DUP(0,2DUP(1,0)),定义后存储单元中有数据0100H的字单元个数是。A、4 B、3 C、8 D、124.23下列语句中有语法错误的语句是。A、DB45H B、DW0ABCDH C、DW‘ABCD’ D、DD‘AB’三、判断题4.24MOVBYTEPTR[BX],1000 ;4.25JMPFARPTRLAB;LAB是标号 ;4.25JLEFARPTRLAB;LAB是标号 ;4.27JMPDWORDPTR[BX+SI] ;4.28PUSHOFFSETVAL;VAL是DB定义的变量 ;4.29汇编语言程序中,符号地址和标号必须先定义后使用 ;4.30在生成的可执行文件中,伪指令是不存在的 ;4.31语句X=X-Y执行后按照减法规则影响标志位 ;4.32ADDAX,BX与ADCAX,BX得到的结果总是不同 ;4.33JNZ AAA ;第5章基本程序设计习题5.1简述编制一个汇编语言程序的步骤。5.2简述判断汇编语言程序质量的标准。5.3编写程序,将DATA_NUM起的4个压缩BCD码转换成十六进制数,并存放在DATA_NUM下面相邻字节中。5.4试编写一程序,用查表法将一位十六进制数转换成与之对应的ASCII码。程序的数据段如下:DATASEGMENTTABDB30H,31H,32H,33H,34H,35H,36H,37HDB38H,39H,41H,42H,43H,44H,45H,46HHEXDB6ASCDB?DATAENDS5.5试编程求解表达式S=(23000-(X*Y+Z))/Z,其中X=600,Y=25,Z=-2000。输入输出程序设计习题6.1用指令实现如下功能:(1)将一个字节输出到端口43H。(2)将一个字节从48H端口输入。(3)将一个在BUF单元的字节输出到端口2F0H。(4)将一个字节从端口30H输入,存到内存ABC单元。(5)将一个字从020FH单元输出。6.2中断处理程序的典型结构包括哪几部分?6.3增加一个新的软中断,应完成哪些操作?6.4CPU与外设问的数据传送方式有哪几种?它们各有什么特点?6.5类型号1DH的中断向量在存储器的哪些单元里?6.6内存单元INT9开始放有一个中断服务程序,它所对应的中断类型号为9。试编写建立这一中断向量的程序段。6.7根据本章讲述的内容,试分析下面一段程序实现的功能。MOVAX,0MOVES,AXMOVDI,36H*4MOVAX,OFFSETINTBUFSTOSWMOVAX,CSSTOSW第6章80868088循环程序设计习题填空7.1下列程序完成的是将16位二进制数转换成4位16进制数的ASCII码,请完善程序。DATASEGMENT X DW 1234HCHAR DB 4DUP(0)DATAENDS…LEA DI,CHARMOV CH,4MOV BX,XL1:MOV CL,4 MOV AL,BLAND AL,0FHCMP AL,9ADD AL,7L2:ADD AL,30HMOV [DI],ALINC DIDEC CHHLT7.2以ARRAY为起始地址的字节表中存放着M个带符号数,找出其中的最大值和最小值,并分别送入到AH和AL中,请完善下列程序段。 …MOVSI,OFFSETARRAYMOVCX,MCLDMOVBH,[SI]MOVBL,BHL1:CMPAL,BHJLEL2MOVBH,AL L2:CMPAL,BLJGEL3MOV BL,ALL3: MOVAX,BXHLT7.3阅读下列程序段,并完善程序和回答问题。XOR AX,AXMOV BX,1LOP:ADD AX,BXINC BXINC BXLOOP LOPHLT程序执行到HLT时,(AX)=,(BX)=。A、9 B、10 C、11 D、20 E、25 F、367.4以STR1为起始地址的字节存储单元中存放着一个字符串,请统计该字符串中的每个字符含有“1”的个数,并将结果保存到以STR2为起始地址的个字节存储单元中。请完善程序。STR1DB'FABCDFGHYTRJHKL9'MEQU$-STR1STR2DBMDUP(0)…LEASI,STR1LEADI,STR2MOVCX,ML1:MOVAL,[SI]MOVDL,0L2:CMPAL,0SHRAL,1JNCL3L3:JMPL2L4:MOV[DI],DLINCSIINCDIHLT编程题7.5试编制一程序,要求从键盘上接收一个4位的16进制数,并在屏幕上显示与它等值的二进制数。7.6 试编制一程序,将一个包含有20个字数据的数组ARRAY分成两个数组,正数数组M和负数数组N。7.8 将30名学生的成绩存入以GRADE为首地址的字节数组中。另一个数组RANK为30名学生的名次表。编写一程序,根据GRADE中的学生成绩,将学生的名次填入RANK数组中。7.9 已知数组A包含15个互不相等的整数,数组B中包含20个互不相等的整数。试编一程序,将即在A中又在B中的整数存入数组C中。7.10从键盘输入一系列字符串(以回车符结束),按字母、数字和其它字符分类计数,最后显示出这三类的计数结果。第7章8086、8088循环分支设计习题一、填空题8.1下面的程序是将10个8位的无符号数按递减次序排序。请选择正确的答案将程序填充完整。DATASEGMENTARRAYDB05H,78H,0FFH,7BH,00HDB8CH,20H,54H,7DH,19HNDB9DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAMAINPROCFARSTART:PUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXLAB1:LEASI,ARRAYMOVBL,0MOVCX,NAGAIN:MOVAL,[SI]INCSICMPAL,[SI](1)MOVAH,[SI]MOV[SI],ALMOV[SI-1],AHMOVBL,1LAB2:LOOPAGAIN(2)DECBL(3)RETMAINENDPCODEENDSENDSTART8.2阅读下列程序段,并完善程序和回答问题。MOVCX,10XOR AX,AXMOV BX,1LOP:ADD AX,BXINC BXINC BXLOOP LOPHLT程序执行到HLT时,(AX)=,(BX)=。8.3以下程序用于计算符号函数。1 (X<0)Y=1 (X<0)Y=0 (X=0)-1 (X>0)的取值范围为-128~+127。请完善下列程序。 ┇MOV AL,XCMP AL,0JZ EXITMOV AL,1NEG1: MOV AL,0FFHEXIT: MOV Y,AL二、简答题8.4为什么说循环结构是分支结构的特例?8.5程序的基本逻辑结构有哪5种?三、编程题8.6将3个连续存放的单字节无符号数按递增次序重新存放在原存放位置。8.7根据键盘输入的字符′A′~′E′(或′a′~′e′),分别显示′ONE′,′TWO′、′THREE′,′FOUR′、′FIVE′,当输入其它字符时,显示′ERROR′,然后重新输入。8.8试编制一程序,求出首地址为ARY的100个字数组中的最小偶数和最大奇数,并分别存放在BUF1和BUF2中。8.9已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数,试编制一程序将即在A中又在B中出现的整数存放到数组C中。第9章子程序设计习题9.1定义子程序时如何确定其属性?9.2已知:(CS)=0B9EH,(IP)=0100H,(BX)=0126H,子程序SUBA位于当前段,其偏移地址为200H,子程序SUBB所在段的段地址为2C60H,其偏移地址为300H。求以下子程序调用指令转移的物理地址。(1)CALLBX(2)CALLNEARPTRSUBA(3)CALLFARPTRSUBB9.3已知堆栈指针寄存器SP的内容是0040H。请画出下列每次调用和返回时堆栈和SP内容的变化过程。(1)主程序MAIN段内调用SUBA子程序,返回的偏移地址为0030H。(2)子程序SUBA段间调用SUBB子程序,返回的段地址为1000H,返回的偏移地址为0200H。(3)从SUBB返回SUBA。(4)子程序SUBA段内调用SUBC子程序,返回的偏移地址为00B0H。(5)从SUBC返回SUBA。(6)从SUBA返回MAIN。9.4主程序和子程序之间的参数传递是如何实现的?9.5编写一个子程序,计算无符号字数组的累加和。无符号字数组存放在首地址为ARRAY的单元中,长度存放在COUNT单元中,和存放于SUM单元中。假设和小于65536。9.6编写一个子程序,把首地址为SRC的数据区存放的50个字数据传送到以DST为首地址的缓冲区去。9.7试分析例9.5程序执行时堆栈的变化过程?9.8在以GRADE为首地址的数组中存放着某班某门课30个学生的成绩。试编写三个子程序分别实现:(1)统计该班这门课的总分。(2)求该班这门课的平均成绩。(3)统计小于60分,60~89分和大于等于90分的学生人数。9.9什么情况需要使用PUBLIC和EXTRN伪指令?试将9.8中的子程序改写成子程序模块。第10章数据运算程序设计习题10.1自0500H单元开始,有10个无符号字节数,编一个程序段求这10个数的和(用位数运算指令),把和放到050AH及050BH单元中(和用两个字节表示),且高字节在050BH单元。10.2在0100H单元和010AH单元开始,存放两个各位10个字节的BCD数(地址最低处存放的是最低字节),编一个程序段求它们的和,且把和放在0200H开始的存储单元中。10.3在0100H单元开始放有数A(低位在前)NA=67267921097385394715在010AH单元开始放有数BNB=53539019823022714092编一个程序段求两数之差,且把差值送入自0100H开始的存储区。10.4给定数N,0<N≤5,要求写一个程序段计算出它的阶乘并将结果保存在存储器地址result处。(N!=1×2×3×…×N)10.5在数组ARRAY处存放着N个无符号字节数,要求写一个程序段求数组中前N个字节数的总和并保存在AX寄存器中。如果总和值超过AX寄存器的容量,则置AX寄存器内容不变。10.6在MEM数据区中存放有一组无符号数据,该数组中的每个数均是4位十进制数(组合的BCD码),存放在两个字节中,请编程完成每个数据对应位按二进制数相加,结果分别存放在X1、X2、X3、X4各字节单元中。10.7设X,Y,R,S,Z均为16位无符号数据的单元符号地址。编一程序段求表达式:Z=(X+Y)/(R-S)的值。10.8设X,Y,R,S,Z均为16位无符号数据的单元符号地址,N为一个立即数。编一程序段求表达式:Z=((X-(Y*R+S-N))/Y的值。10.9请编程完成两个无符号数的相乘,但采用重复相加的方法实现。10.10请编程利用除法指令实现2个无符号数相除:即一个64位数除以一个16位数(N1/N2,商为N3,余数为N4)。第11章高级汇编语言技术习题11.1设有以下宏定义FUNMACKOVl,V2LOCALNEGA,ZERO,OKPUSHAXMOVAL,V1CMPAL,0JSNEGAJZZEROMOVAL,1JMPOKNEGA:MOVAL,0FFHJMPOKZERO:MOVAL,0OK:MOVV2,ALPOPAXENDM若在源程序中进行了两次调用……FUNB_D1,B_D2……FUNB_D3,B_D4……试写出后一次宏调用对应的宏扩展。11.2试用IRP及IRPC伪指令的重复汇编结构实现【例11.11】中程序段的功能。11.3设源程序中有6个近标号,分别为BR0,BRl,…,BR5。试用重复汇编结构定义一个由这6个标号构成的跳转表。11.4定义一个宏指令,用以对1~3个有符号字节变量求取最小值。要求对不同的变量个数产生不同的宏扩展。11.5定义一个宏指令FUNC,用于下列分段函数的计算。所作宏定义要保证宏调用时能根据自变量的不同取值范围作不同的宏扩展,以减少目标代码。x<-1-1≤x<-1-1≤x<4x≥4(x为使用EQU伪指令定义的字节有符号数)x<-1-1≤x<4X≥4(x为使用四u伪指令定义的字节有符号数)第12章BIOS和DOS中断调用习题12.1分别利用DOS和BIOS中断功能调用,将当前的时间和日期设置为2008年8月8日20:08:00。12.2分别利用DOS和BIOS中断功能调用,显示机器当前时间。12.3利用BIOS中断功能调用从键盘上输入字符,然后送显示器显示,并送打印机打印输出,如果输入字符是!,则退出程序。12.4编制一程序,要求在屏幕上显示一个直角三角形,三边分别为红、黄、绿三种颜色。12.5编写利用8253驱动发声的通用发声子程序。12.6编写出实现下列要求的指令序列:(1)设置屏幕为80×25文本显示方式。(2)设置屏幕为蓝底红字。(3)把光标定位在屏幕的中央(假设是80X25黑白文本显示)。(4)设置屏幕为320×200图形显示方式并清屏。第13章混合编程习题13.1设C程序在小模式下调用ADD_NUM(x,y,z)汇编子程序,采用堆栈传递参数,请画出堆栈传递参数的示意图。13.2.汇编子程序中有一外部变量var1供C程序引用,分别写出在汇编程序和C程序中对此变量说明的语句。13.3有如下C语言声明的外部子程序compare()完成字符串的比较功能,请编写汇编程序实现compare()的功能,在小模式(SMALL)下连接。externintcompare(char*str1,char*str2);其中str1和str2是两个字符串,串结束标志为“\0”,从串首开始比较,如果str1>str2则返回值为1;如果str1和str2相同则返回值0;如果str1<str2则返回值为-1。13.4回文是一种特殊的字符串,其特点是从头到尾读和从尾向头读的顺序完全相同,如“12321”,“abcdcba”。编写汇编程序实现供C语言程序调用的外部子程序ishuiwen(),其功能是判断给定字符串是否回文,如果是回文,则返回值为1;否则为0。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论