《微机汇编.doc》由会员分享,可在线阅读,更多相关《微机汇编.doc(23页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流微机汇编【精品文档】第 23 页一填空:1、 ZF标志位是标志结果是否为零的,若结果为零,ZF为_1,否则ZF为_0_。当ZF为1时,SF为_0_。2、 调用程序与子程序之间的参数传递方法有四种,即堆栈法、_约定寄存器、_约定存储器单元法、_向量传递法_。3、 8086/8088 CPU可访问2个独立的地址空间,一个为存贮器地址空间,其大小为_1MB_个字节;另一个为_ I/O地址空间 _,其大小为_ 64k 字节。4、 CPU在指令的最后一个时钟周期检测INTR引脚,若测得INTR为_1_且IF为_1_,则CPU在结束当前指令后响应中断请求。5、 当存
2、储器的读出时间大于CPU所要求的时间,为保证CPU与存储器的周期配合,就需要用_ READY _信号,使CPU插入一个_Tw_状态。6、 INT 40H 指令中断向量存放在_ 0000 _H:_0100 _H中。7、 在8086通用寄存器中,可以用作存储器寻址的寄存器有_ds _和_ ax _。8、 PSW中_ TF _、_ IF _、_ DF _是控制标志。9、 标号可以有两种类型属性。它们是_ NEAR _和_ FAR _。10、 请用一条指令实现如下操作:(1)将ax中划x的位清015 5 4 0 指令:_AND AX,0060H _(2)寄存器的低四位取反:_ XOR AX,000FH
3、 _。11、 设(ax)=1000h,(bx)=2340h,则在执行了指令cmp ax,bx后,cf标志值为_1 _,zf标志值为_ 0 _。12、 SRAM靠_ 寄存器 _存储信息,DRAM靠_ mos管的栅电容上的电荷 _存储信息,为保证DRAM中内容不丢失,需要进行_ 周期性刷新 _操作。13、 CPU响应可屏蔽中断的条件是_ IF=1 _、_当前指令执行完毕 _、_ 提供中断类型码 。14、 当ALE有效时,8086/8088CPU地址/数据总线AD0-AD15上传送的是_ 地址 _信息。15、 8088是一种_ 8 _位的微处理器。16、 总线周期是指_ 指cpu访问一次外设所需的时
4、间 _。17、 当_ 等待测试信号为低电平 _时,CPU便进入等待状态(Tw)。18、 动态存储器DRAM的刷新是指_ DRAM 只能将数据保持很短的时间。为了保持数据,DRAM 必须隔一段时间刷新一次 _。19、 存贮器的地址区域_ 03FFH _为中断向量区。20、 用8K8位的RAM芯片组成16K16的存储器时,所需的RAM芯数和产生片选信号的地址分别为_4 、_ A13、A14 _。1、 宏指令定义必须由伪指令_ MACRO _开始,伪指令_ ENDM_结束,两者之间的语句称为_ 宏定义 _。2、 三个重复前缀指令为_REP_、_REPE_、_REPNE _。3、 8086CPU通过_
5、代码段 _寄存器和_ 指令指针 _寄存器能准确找到指令代码。4、 CPU在指令的最后一个时钟周期检测INTR引脚,若测得INTR为_1 _且IF为_ 1 _,则CPU在结束当前指令后响应中断请求。5、 若一个数据块在内存中的起始地址为80A0H:DFF6H,则这个数据块的起始地址的物理地址为_8E9F6H _。6、 在80x86微处理器中,指令分配给寄存器SP的默认段寄存器是_ ss堆栈段寄存器 _。7、 8086内部由_总线接口部分件 _和_ 执行部件 _两部分组成,其作用分别是_ 负责控制存储器读写 _和_ EU从指令队列中取出指令并执行 _。8、 8086有_ 20 _根地址线,可寻址_
6、1M _字节的地址空间。9、 最小模式系统中除CPU以外的总线主模块是DMA 模块_,它与CPU间通过(HOLD)和(HLDA)两个信号来交换总线控制权。1、 分别用一条语句实现下述指明的功能:(1)栈顶内容弹出送字变量ayw_ pop ayw _(2)双字变量ayd存放的地址指针送ES和SI_ LES SI,AYD _(3)变量ay2类型属性送AH_ MOV AH,TYPE AY2 _(4)不允许中断即关中断_ CLI _(5)将字符串how are you!存入变量ayb_ AYB DB “HOW ARE YOU!” _(6)子程序返回调用程序_ RET _(7)地址表达式ayy4的偏移地
7、址送字变量addr_ MOV ADDR,OFFSET AYY4 _(8)AX的内容加1,要求不影响CF_ INC AX _(9)BX的内容加1,要求影响所有标志位_ ADD BX,1 _(10)若操作结果为零转向短号goon_ JZ GOON _2、 设堆栈指针(SP)=2200H,此时若将AF、AX、BX、CX依次推入堆栈后,(SP)= _2192H _。3、 8086/8088微处理器的INTR引脚由标志位_IF 控制。4、 一个基本的总线周期由_ 4 _个时钟周期组成。5、 8086的地址总线中可用作I/O端口寻址的有16根,能形成_65536 _个端口地址。6、 8086外部中断有_硬
8、件中断 和_软件中断 _,当CPU内的中断标志IF“0”状态时,外部中断线同时为“1”状态时,CPU响应哪个中断请求信号_ 软件中断 _。7、 最小模式系统除CPU、存储器、I/O接口和总线外,至少还应配置_ 8284时钟 _、_8282锁存器 _、_ 8286收发器 _三种芯片部件。1、 8位无符号整数的表示范围为0255,写成16进制形式为_ 00FFH _,8位有符号整数的表示范围为-128+127,写成16进制形式为_ 00FFH _。2、 设(CS)=25ffh,(DS)=2140h,(ES)=2240h,(SS)=2510h,(BP)=02d0h,(SI)=0010h,(DI)=0
9、206h,则(1)指令mov ax,bp+si+2的源操作数有效地址为_ 2E2H_,物理地址为_ 253E2H _。(2)指令mov ax,di+100h的源操作数有效地址为_306H ,物理地址为_21706H _。3、 8086中地址/数据线分时复用,为保证总线周期内地址稳定,应配置_ 锁存器 _,为提高总线驱动能力,应配置_ 驱动器 _。4、 类型码为_ 16H _的中断所对应的中断向量存放在0000H:0058H开始的4个连续单元中;若这4个单元的内容分别为_80H、70H、60H、50H_,则相应的中断服务程序入口地址为 5060H:7080H 。5、 某8086微处理器系统中设计
10、了一个存储为128KB的SRAM存储器模块,约定该存储器模块的起始地址为40000H,则该存储器模块的末地址为_ 5FFFFH _。若用于该存储器模块片选译码的地址信号线为A17、A18、A19,则该模块片选信号的逻辑表达式为:/CS=_ 4 。6、 中断处理的过程一般包括中断申请、_中断判优 _、_中断响应 _、中断服务、中断返回。7、 逻辑地址由_ 段地址 _和_ 偏移地址 两部分组成。8、 时钟周期是CPU的时间基准,它由计算机的_ 主频 _决定,若8086的时钟周期为250ns,则基本总线周期为_ 1000ns _。9、 只有_CPU和内存或I/O接口之间传输数据,以及填充指令队列 _
11、时,CPU才执行总线周期,总线接口部件BIU的功能是_负责与存储器和输入输出端口的接口_。单选题1、 在下列指令的表示中,不正确的是( C )。A、moval,bx+siB、jmpshortdoniC、decbxD、mulcl2、 IBM PC微机中,有符号数是用( B )表示的。A、原码B、补码C、反码D、BCD码3、 可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是( D )。A、ax,bx,cx,dxB、ds,es,cs,ssC、sp,bp,ip,bxD、si,di,bp,bx4、 设al=20h,si=0500h,ds=3000h,(30500h)=0c0h,cf=1。执行s
12、bbal,si后,正确的结果是( )。A、al=5fh、sf=1、cf=1B、al=60h、sf=1、cf=0C、al=5fh、sf=0、cf=1D、al=60h、sf=0、cf=05、 执行下列指令序列后,正确的结果是( A )。moval,81haddal,aladcal,alA、al=05hB、al=204hC、al=04hD、al=205h6、 下面的数据传送指令中,错误的操作是( D )。A、movss:bx+di,1000hB、movdx,1000hC、movwordptrbx,1000hD、movds,2000h7、 cpu发出的访问存储器的地址是( A )。A、物理地址B、偏移
13、地址C、逻辑地址D、段地址8、 连接到64000h6FFFFh地址范围上的存储器是用8k8RAM芯片构成的,该芯片要( B )片。A、8片B、6片C、10片D、12片9、 连续启动两次独立的存储器操作之间的最小间隔叫(D )。A、存取时间B、读周期C、写周期D、存取周期10、 若8086 CPU主频为8MHz,则其基本总线周期为( C )。A、200nsB、500nsC、125nsD、250ns1、 下列叙述正确的是( C )。A、对两个无符号数进行比较采用cmp指令,对两个有符号数比较用cmps指令。B、对两个无符号数进行比较采用cmps指令,对两个有符号数比较用cmp指令。C、对无符号数条
14、件转移采用jae/jnb指令,对有符号数条件转移用jge/jnl指令。D、对无符号数条件转移采用jge/jnl指令,对有符号数条件转移用jae/jnb指令。2、 把汇编源程序变成代码程序的过程是( A )。A、编译B、汇编C、编辑D、链接3、 用一条指令仅实现将(bx+si)-ax的方法是(D )。A、xchgax,bxsiB、movax,bx+siC、leaax,bxsiC、leaax,bxsi4、 设ax=1000hnegaxnotax执行上述指令后,正确的结果是( B )。A、ax=1001hB、ax=0fffhC、ax=1000hD、ax=0111h5、 从buf单元开始存放有10个字
15、节数据,欲找出与al中内容不同的数据,并将该数据的偏移地址送adr单元,正确选择的指令序列是( B )。A、 cldrepcmpsbjzk1movadr,dik1:B、 cldrepnzcmpsbjnzk1movadr,dik1:C、 cldrepzscasbjzk1decdimovadr,dik1: D、 cldrepzscasbjnek1decdimovadr,dik1:6、 当一个带符号数大于0fbh时程序转移,需选用的条件转移指令是( C )。A、jleB、jnlC、jnleD、jl7、 从8086CPU的内部结构上看,其是由( C )两部分组成。A、控制器和20位物理地址加法器B、运
16、算器和总线接口C、执行单元和总线接口单元D、控制器和运算器8、 8086的内存空间和I/O空间是( A )。A、单独编址的,分别是1MB和64KBB、单独编址的,都是1MBC、统一编址的,都是64KBD、统一编址的,都是1MB9、 在8086CPU的标志寄存器中,控制标志位占( A )。A、3位B、9位C、4位D、16位10、 某微机字长16位,其存储器容量为64KB,如果按字编址,其寻址范围是(B )。A、0(16K-1)字B、0(32K-1)字C、0(16K-1)BD、0(64K-1)字。1、 在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来( B )。A、占内存空间小,但速
17、度慢B、占内存空间大,但速度快C、占内存空间相同,速度快D、占内存空间相同,速度慢2、 指令jmpfarptrdone属于( C )。A、段内转移直接寻址B、段内转移间接寻址C、段间转移直接寻址D、段间转移间接寻址3、 设sp初值为2000h,执行指令pushax后,sp的值是( D )。A、1fffhB、1998hC、2002hD、1ffeh 4、 指令指针寄存器是( A )。A、ipB、spC、bpD、psw5、 在汇编语言程序中,对end语句的叙述正确的是( C )。A、end语句是一可执行语句B、end语句表示程序执行到此结束C、end语句表示源程序到此结束D、end语句在汇编后要产生
18、机器码6、 8086/8088的存储器组织是将存储器划分为段,可作为段的起始地址是(B )。A、185a2hB、00020hC、01004hD、0ab568h7、 若用6264SRAM芯片(8K8位)组成128KB的存储器系统,需要( A )片6264芯片。A、16B、24C、32D、64 8、 对存储器访问时,地址线有效和数据线有效的时间关系应该是( C )。A、数据线较先有效B、二者同时有效C、地址线较先有效D、同时高电平9、 下面是某8086微机内存中的部分数据,则中断类型号为11H的中断服务程序的入口地址是( C )。0000:0040 B3 18 8A CC 4D F8 00 F0
19、41 F8 00 F0 C5 18 8A CC0000:0050 39 E7 00 F0 A0 19 8A CC 2E E8 00 F0 D2 EF 00 F0A、F000:F84DB、A019:8ACCC、CC8A:19A0D、4DF8:00F010、 8086/8088 CPU内部有一个始终指示下条指令偏移地址的部件是( C )。A、SPB、CSC、IPD.BP1、 下列指令中,能完成将AL寄存器清零的有( C )条。CMP AL,AL; SUB AL,AL; XOR AL,AL; MOV AL,0A、1B、2C、3D、42、 8086cpu在基址加变址的寻址方式中,变址寄存器可以为( D
20、 )。A、BX或CXB、CX或SIC、DX或SID、SI或DI3、 条件转移指令jb产生程序转移的条件是( A )。A、cf=1B、cf=0C、cf=1和zf=1D、cf=1和zf=04、 cbw指令的功能是( B )。A、 把源操作数的符号位扩展到目的操作数中B、 把al中的符号位扩展到ah中C、 把ah中的符号位扩展到al中D、 把ax中的符号位扩展到dx中5、 设ah0,al06h,bl09h,执行指令addal,blaaa之后,其结果应是( A )。A、ah01,al05B、ah1al15hC、ah0al0fhD、ah0al15h6、 堆栈中当前出栈的存储单元地址是( A )。A、ss
21、*10h+spB、ss*10h+bpC、ss*10+spD、ss*10+bp7、 对存储器访问时,地址线有效和数据线有效的时间关系应该是( C )。A、数据线较先有效B、二者同时有效C、地址线较先有效D、同时高电平8、 IBM-PC及其兼容机具有( D )I/O空间。A、统一编址的64KBB、统一编址的1MBC、独立编址的1MBD、独立编址的64KB 9、 CPU响应INTR和NMI中断时,相同的必要条件是(D )。A、当前总线空闲B、允许中断C、当前访问内存结束D、当前指令执行结束10、 通常,中断服务程序中的一条STI指令目的是( D )。A、允许低一级中断产生B、开放所有可屏蔽中断C、允
22、许同级中断产生D、允许高一级中断产生1、 某系列微机对存储器的分段,如果每一个段最多的字存储单元(16位二进制)是32k,那么表示段内字节单元偏移地址的二进制位数应是( B )。A、20位B、16位C、15位D、12位2、 在进行二重循环程序设计时,下列描述正确的是( A )。A、外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内。B、外循环初值应置外循环之内;内循环初值应置内循环之内。C、内、外循环初值都应置外循环之外。D、内、外循环初值都应置内循环之外,外循环之内。3、 选用串操作指令时,错误的操作是( D )。A、置方向标志位B、根据串操作指令设置重复次数并送入cxC、设置源
23、操作数及目的操作数指针D、源操作数和目的操作数都可以加段超越4、 movcl,8rolax,clorax,bx假设ax=0012h,bx=0034h,那么上述程序段执行后,ax中的结果是( C )。A、1234hB、3412hC、0046hD、0034h5、 完成将累加器al清零,并使进位标志cf清零,下面错误的指令是( D )。A、moval,00hB、andal,00hC、xoral,alD、subal,al6、 用一条指令实现将寄存器bx和si的内容相加,结果并送入ax中,这条指令是( D )。A、addax,bxsiB、movax,bxsiC、andax,bxsiD、leaax,bxs
24、i7、 RESET信号有效后,8086CPU执行的第一条指令地址为( C )。A、00000HB、FFFFFHC、FFFF0HD、0FFFFH8、 欲使8086CPU工作在最大组态方式,其引脚应接( C )电平。A、TTLB、CMOSC、逻辑低 D、逻辑高 9、 8086/8088中除( A )两种寻址方式外,其它各种寻址方式的操作数均在存储器中。A、立即寻址和直接寻址B、寄存器寻址和直接寻址C、立即寻址和寄存器寻址D、立即寻址和间接寻址10、 EPROM是指( D )。A、随机读写存储器B、可编程只读存储器C、只读存储器D、可擦除可编程只读存储器一、 阅读程序回答问题(15分)DSEG SE
25、GMENTBLOCK DB 51,30,43,107,89,90,200,197,70,64COUNT EQU $-BLOCKRESULT DB 0DSEG ENDSCODE SEGMENTASSUME CS:CODE,DS:DSEGMAIN PROC FARSTART:PUSH DSSUB AX,AXPUSH AXMOV AX, *MOV DS,AXMOV ES,AXMOV SI, *MOV CX,COUNTCON: MOV AL,SITEST AL,01H*JZ NEXTINC RESULTNEXT: INC SILOOP CONRETMAIN ENDPCODE ENDSEND START
26、问题:1、简述程序的功能。(3分) 答:计算BLOCK数据元素中奇数的个数,并存入RESULT中2、写出程序执行后,RESULT单元的内容。(2分) 答:5(奇数的个数)3、写出第3行中$的作用和汇编后COUNT的值。(3分) 答:代表BLOCK的地址(偏移)指针地址,104、 写出*处的完整指令。(2分) 答:MOV AX,DATA5、 写出*处的完整指令,并写出该指令的替代指令。(3分) 答:MOV SI,OFFSET BLOCK 或 LEA SI,BOLCK6、不改变程序功能,写出*处的替代指令。(2分) 答:AND AL,01H一、 阅读程序回答问题(15分)DATA SEGMENTF
27、EN DB 85,-90,67,-127,95,77,88,73,60,83COUNT EQU $-FENRESULT DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART PROC FARPUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV SI,OFFSET FENMOV CX,COUNTDEC CX ;*MOV AL,SIMOV RESULT ,ALTEST AL,80HJZ LOPNEG ALLOP:INC SIMOV BL,SITEST BL,80HJZ NEXTNEG BLNEXT:CMP A
28、L,BLJAE NEXT1MOV AL,BLMOV BL,SIMOV RESULT,BLNEXT1:LOOP LOPRETSTART ENDPCODE ENDS END START问题:1、简述该程序的功能。(6分) 答:把绝对值最大的数找出来放在RESULT单元中2、 写出程序执行后,RESULT单元的内容。(2分) 答:1273、 *处为什么要用DEC CX指令将CX的值减1?(3分) 答:比较次数比被比较数据少14、 简述LOOP指令的执行过程。(2分) 答:cx-cx 转移到标号处,循环被重复| 如果cx-0,结束循环,执行后续语句5、最后一句END START伪指令中START的作用
29、是什么?(2分)答:表示程序结束,汇编程序在遇到end结束汇编,程序将从START标号开始执行 一、 阅读程序回答问题(15分)假定x1,x2,xn为无符号数。org100hblokdwx1,x2,xncountequ(-blok)/2resultdwcount,?leabx,blok-2movcx,resultxorax,axgoon:addbx,2cmpax,bxjaenext ;*movax,bxnext:loopgoonmovresult+2,ax问题:(1)程序运行后,bx的值;(2分)答:100H+2*(COUNT-1)(2)程序循环次数;(2分)答:= COUNT(3) resu
30、lt+2字存储单元的内容;(5分) 答:MAX(X1,X2,.,XN)(4)*处程序改为jbe后,result+2字存储单元的内容;(2分)(5)如果x1,x2,xn为有符号数,要实现与原程序相同功能,*处程序如何应该修改。(4分)答: 一、 阅读程序并填空(每空3分,共15分)功能:从键盘读入一字符串(长度小于40),将该串反转后,输出显示。maxno equ 41sseg segment stackdw 100 dup(?)sseg endsdseg segmentmesg1 db input a string:$mesg2 db its reverse is:buf db maxno,?
31、,maxno dup(?)dseg endscseg segmentassume cs:cseg,ds:dsegstart:_MOV AX,DSEG_mov ds,axmov dx,offset mesg1mov ah,9int 21hmov dx,offset buf_MOV AH,OAH_int 21hxor ax,ax_MOV AL,BUF+1_ ;取实际读入字符个数lea di,buf+2mov si,diadd si,axmov byte ptr si,$dec sicont:cmp di,si_JGE FINISHD_mov al,sixchg al,didec si_INC DI
32、_ ;调整dijmp contfinished:lea dx,buf+2mov ah,9int 21hmov ax,4c00hint 21hcseg endsend start一、 阅读程序并填空(每空3分,共15分)功能:完成对首地址为a的n字正整数组从小到大排序。datasegment adwndup(?) dataendscodesegment assumecs:code,ds:data start: mov ax,data_mov ds,ax_movcx,n _dec cx_loop1: movdi,cx movbx,0 loop2: _mov ax,abx_cmpax,abx+2 _
33、JL continue_xchgax,abx+2 movabx,ax continue: addbx,2 looploop2 _mov cx,di_looploop1 movah,4ch int21h codeends endstart 名词解释:指令周期 :执行一条指令所需要的时间,一般由若干个组成 总线周期 :总线周期通常指的是CPU完成一次访问I/O端口操作所需要的时间统一编址:也称存储器映射编址方式,它把内存的一部分地址分配给I/O端口软中断 :又称内部中断,由主机内部产生或程序预失安排的中断时序:计算机的时间顺序 BIOS:基本输入输出系统 IP :在程序的运行过程中,它始终指向下一
34、条指令的首地址,和cs一起确定下一条指令的物理地址 微处理器字长:即数据总线带宽,总线带宽是可以同时传输的数据位数,位数越多,一次传输的信息就越多基址变址寻址:操作数是一个基址寄存器和变址寄存器的总和,所以存放地址由两部分组成。8088最小组态:在系统中只有8088一个微处理器 可屏蔽中断:保存断点入栈,响应经中断控制器8259优先级判断后的中断请求,恢复断点中断向量 :中断服务的入口地址 物理地址 :每一个字节单元给以一个唯一的存储器地址 HOLD/ HLDA :总线请求信号/总线请求响应信号堆栈:一种数据结构,以先进后出的方式来访问存储区逻辑地址:由段地址和段内偏移地址决定 寻址方式:寻找
35、或地址的方式INTR/INTA 可屏蔽中断请求/中断响应信号独立编址:由存储器的I/O端口有各自独立的地址空间,访问I/0需要的I/0指令程序设计题:1编写计算下面函数值的程序: 1X0Y= 0X=0 -1X0DATA SEGMENTX DB -10Y DB ?DATA ENDSSRACK SEGMENT STACKDB 200DUP(0)STACK ENDSCODE SEGMENTASSUME DS:DATA,SS:STACK,CS:CODESTART:MOV AX,DATAMOV DS,AXCMP X,0JGE A1MOV Y,-1JMP EXITA1: JG A2MOVY,0JMPEXI
36、TA2:MOVY,1EXIT:MOVAH,4CHINT 21HCODEENDSEND START2。试编一程序,求三个带符号字数据中的最大值,并将最大值存入MAX字单元中。STAC SEGMENT STACKDB 200 DUP(0)STACKENDSDATASEGMENTXDW 00ABHYDW -5ZDW 200MAX DW ?DATAENDSCODESEGMENTASSUME DS:DATA,SS:STACK,CS:CODESTART:MOVAX,DATA MOVDS,AXMOVAX,XCMPAX,Y;JGL1MOVAX,YCMPAX,ZJGEXITL2:MOVAX,ZJMPEXITL1
37、:CMPAX,ZJLEL2EXIT:MOVMAX,AXMOVAH,4CHINT21HCODEENDSEND START3编写程序完成求123N的累加和,直到累加和超过1000为止。统计被累加的自然数的个数送CN单元,累加和送SUM。DATASEGMENTSUMDW?CNDW?DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,0MOVBX,0LP:INCBXADDAX,BXCMPAX,1000JBELPMOVSUM,AXMOVCN,BXMOVAH,4CHINT21HCODEENDSENDSTART4 编写
38、一汇编程序,将正数N插入到一个已排序的字数组的正确位置。该数组的首地址和末地址分别为ARRAY-HEAD和ARRAY-END,其中所以的数均为正数,且已按增序排列。(例:取数组为3、5、15、23、37、49、52、65、78、99、105)xdw?array_headdw 3、5、15、23、37、49、52、65、78、99array_enddw 105ndw 32Mov ax,nMov array_head-2,offffhMovsi,0Compare:Cmparray_endsi,axJleinsertMovbx,array_endsiMovarray_endsi+2,bxSubsi,
39、2Jmpshort compareInsert:Movarray_endsi+2,ax5 编写一程序,把从键盘输入的一个小写字母用大写字母显示出来。NAME TURNDSEG SEGMENTA DB PLEASE INPUT (az):,$B DB 0AH,0DH,$DSEG ENDSSSEG SEGMENT STACKDB 90H DUP(?)SSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEG,SS:SSEGSTART: MOV AX,DSEGMOV DS,AXMOV DX,OFFSET A/提示输入MOV AH,09HINT 21HMOV AH,01H
40、INT 21HMOV BL,ALSUB BL,20H/转换MOV DX,OFFSET BMOV AH,09HINT 21HMOV DL,BLMOV AH,02INT 21H/输出MOV AH,4CHINT 21H/结束CSEG ENDSEND START6 采用查表法,实现一位十六进制数转换为ASCII 码显示。ASCII:db 30h,31h,32h,33h,34h,35h,36h,37hdb 38h,39h,41h,42h,43h,44h,45h,46hHex:db 04h,0bhmov bx,offset ASCIImoval,hexandal,0fhxlatmov dl,almovah
41、,2int21h7.写程序段:在ds和es段分别定义了20个字符的字符串buf1和buf2,比较这两个字符串,如相等转match执行,否则转nmatch执行。用串操作指令实现。DATA SEGMENT STRING1 DBABCDEFG$ COUNT1 EQU $-buf1 STRING2 DBABCDEDG$ COUNT2 EQU $-buf2 S0 DB MATCH$ S1 DB NOT MATCH$ SHIFT DB 0DH,0AH,$DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA GO: MOV AX,DATA MOV DS,AX MOV ES,AX MOV DX,OFFSET buf1;显示字符串1 MOV AH,09H INT 21H MOV DX,OFFSET SHIFT;回车换行 INT 21H MOV
限制150内