版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、习题一1 分别将下列二进制数作为无符号数和带符号数转换为十进制和十六进制数11010011, 01110111, 10000011, 00101111 ,10101010查看正确答案无符号数: 11010011=211=d3h,01110111=119=77h,10000011=131=83h,00101111=47=2fh,10101010=170=aah带符号数:11010011= -45=d3h,01110111=+119=77h,10000011= -125=83h,00101111=+47=2fh,10101010= -86=aah2
2、160; 十六进制运算1a52h+4438h ,3967h2d81h, 37h×12h ,1250h×4h查看正确答案5e8ah,0be6h,3deh,4940h3 将十进制数变为8位补码,做运算(结果用二进制、十六进制、十进制表示)29+53, 7324, -66+82 ,-10215查看正确答案00011101+00110101=01010010=52h=8201001001+11101000=00110001=31h=4910111110+01010010=00010000=10h=161
3、0011010+11110001=10001011=8bh= -1174 用压缩bcd码计算(结果用二进制、bcd码、十进制表示)29+53, 7324, 66+18 ,132+75查看正确答案00101001+01010011=01111100+00000110=10000010=82h=820111001100100100=0100111100000110=01001001=49h=4901100110+00011000=01111110+00000110=10000100=84h=840000000100110010+01110101=000
4、0000110100111+00000110=0000001000000111=0207h=2075 符号位扩展(字节扩展为字,字扩展为双字)20a3h, 94h ,3456h ,7fh ,ec00h查看正确答案000020a3h,ff94h,00003456h,007fh,ffffec00h6 若机器字长为16位,其无符号数表示范围是多少?带符号数表示范围是多少?分别用十进制和十六进制表示。查看正确答案无符号数:065535,0000hffffh;带符号数:-32768+32767,8000h7fff
5、h7 写出下列十六进制数所能代表的数值或编码:(1)38h (2)ffh (3)5ah (4)0dh查看正确答案(1) 38h等于十进制数56,是十进制数56的补码,数字8的ascii码,十进制数38的压缩bcd码(2) ffh等于十进制数-1,是带符号数-1的补码,无符号数为255(3) 5ah等于十进制数90,是十进制数90的补码,大写字母z的ascii码(4) 0dh等于十进制数13,是十进制数13的补码,回车符的ascii码8 将下列十进制数分别转换为二进制、十六进制、二进制补码、压缩bcd码和
6、ascii码:(1)108 (2)46 (3)-15 (4)254查看正确答案(1) 108=01101100b=6ch,补码01101100b,压缩bcd码0000000100001000,ascii码313038h(2) 46=00101110b=2eh,补码00101110b,压缩bcd码01000110,ascii码3436h(3) 15=11110001b=f1h,补码11110001b,ascii码2d3135h(4) 254=0000000011111110b=00feh,补码0000000011111110b,压缩bcd码0000001001010100,ascii码32353
7、4h9 写出下列算式的二进制运算结果,标志位cf、sf、zf、of分别是什么值?(1)56+63 (2)83-45 (3)-74+29 (4)-9237查看正确答案(1) 56+63=01110111b,cf=0,sf=0,zf=0,of=0(2) 83-45=00100110b,cf=0,sf=0,zf=0,of=0(3) -74+29=11010011b,cf=0,sf=1,zf=0,of=0(4) -9237=01111111b,cf=1,sf=0,zf=0,of=110 查表,指出ascii码0
8、dh、0ah、07h、1bh、20h、40h、50h、70h对应的控制字符。查看正确答案回车、换行、响铃、esc键、空格键、p、p习题二1 写出冯·诺依曼计算机的基本特点。2 如何解决内存速度与cpu速度不匹配问题。3 写出计算机总线的分类与作用。4 简述8086cpu寄存器的分组及各自的作用。5 标志寄存器中都有哪些标志位与计算结果有关?6
9、160; 简述逻辑地址与物理地址的概念,两者的关系。7 存储器为什么要分段?如何分段。8 8086系统把存储器分为哪四种类型的段?各自的特点是什么。9 8086cpu的地址线为20根,寻址空间为1mb。最少可划分为多少个逻辑段?最多呢?查看正确答案最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节)10 在四种类型的段中通常使用哪些寄存器表示逻辑地址?查看正确答案cs:ip
10、,ds:bx、si、di,es:bx、si、di,ss:sp、bp11 字节单元和字单元如何区分?若给出一个地址,如何知道要访问的是字节单元还是字单元?查看正确答案字节单元保存8位数,字单元保存16位数。根据源操作数的属性确定要访问的是字节单元还是字单元。 12 偶地址单元和奇地址单元在保存数据上有区别吗?查看正确答案对于字节单元来说,偶地址和奇地址一样;对于字单元而言,最好用偶地址保存,可减少cpu的访存次数。13 有一个32k字节的存储区,首地址是330
11、2:5ac8h,写出其首单元和末单元的物理地址。查看正确答案首单元的物理地址=38ae8h,末单元的物理地址=38ae8h+7fffh=40ae7h14 什么是有效地址?如何获得有效地址。15 存储单元地址和内容表示如下,请画出存储单元存放形式。(1) (1280a)=3456h (2) (20021h)=4dh (3) (33450h)=37a520d1h16 根据逻辑地址计算出物理地址,并解释逻辑地址与物理地址的对应关系。(1) 2389:3de9h (
12、2) 1230:ec92h (3) 14d9:c202h查看正确答案(1)物理地址=27679h (2) 物理地址=20f92h (3) 物理地址=20f92h (2)和(3)的物理地址是一样的。说明逻辑地址不唯一,多个逻辑地址可对应到同一个物理单元上。17 给出段地址和偏移地址如下,计算出对应的物理地址。(cs)=54c3h,(es)=2569h,(ds)=1200h,(ss)=4422h,(bx)=5678h,(sp)=9945h,(ip)=0e54h,(di)=63b1h查看正确答案代码段cs:ip的物理地址=55a84h 堆栈段ss:sp的
13、物理地址=4db65h数据段ds:bx的物理地址=17678h 附加段es:di的物理地址=2ba41h18 已知堆栈区大小为512字节,栈底单元的物理地址为15230h。将两个字入栈保存后,当前栈指针所指单元的物理地址是多少? 堆栈区中还能保存多少个数据?查看正确答案当前栈指针所指单元的物理地址是1522ch。堆栈区中还能保存254个字。19 写出修改当前数据段200h开始的数据区数据的debug命令。查看正确答案执行e 20020 对当前代码段从100h
14、开始反汇编的debug命令是什么?查看正确答案执行u 100 21 在debug下,要将寄存器cx的值修改为100h,应该执行什么命令?查看正确答案执行r cx,然后输入10022 在debug下,怎样将数据段的0号4号字节单元填入'a'、'b'、'c'、'd'?查看正确答案执行e ds:0 a b c d 习题三1 名词解释:零地址指令,一地址指令,二地址指令。2
15、60; 分别写出与数据有关的7种寻址方式并举例说明。3 已知(bx)=1290h,(si)=348ah,(di)=2976h,(bp)=6756h,(ds)=2e92h,(es)=4d82h,(ss)=2030h,请指出下列指令的寻址方式,并求出有效地址ea和物理地址:mov ax,bxmov ax,1290hmov ax,bxmov ax,ds:1290hmov ax,bpmov dibx,axmov es:si,ax 查看正确答案mov ax,bx 源操作数为寄存器寻址,ea 无,物理地址 无mov ax,1290h 立即寻址,ea
16、无,物理地址 无mov ax,bx 寄存器间接寻址,ea=1290h, 物理地址=2fbb0hmov ax,ds:1290h 直接寻址,ea=1290h, 物理地址=2fbb0hmov ax,bp 寄存器间接寻址,ea=6756h, 物理地址=26a56hmov dibx,ax 目的操作数为基址变址寻址,ea=3c06h, 物理地址=32526hmov es:si,ax 寄存器间接寻址,ea=348ah, 物理地址=50caah4 寄存器间接寻址方式可以使用哪些寄存器作为间址寄存器?5 立即寻址方式和寄
17、存器寻址方式的操作数有物理地址吗?6 什么是段超越?段超越前缀代表什么?7 请指出下列指令的错误:mov ax,cxmov al,1200hmov al,bxmov sidi,axmov es:dx,cxmov ax,valuemov count,si 查看正确答案mov ax,cx 错。cx不能为间址寄存器mov al,1200h 错。立即数超出8位寄存器范围mov al,bx 错。两个操作数不匹配mov sidi,ax 错。两个变址寄存器不能在一起mov es:dx,cx 错。dx不能为间址寄存器m
18、ov ax,value 错。ax不能为间址寄存器mov count,si 错。两个操作数不能都是存储单元8 根据题目要求,写出相应的汇编指令:(1) 把bx寄存器的值传送给ax(2) 将立即数15送入cl寄存器(3) 用bx寄存器间接寻址方式将存储单元中的字与ax寄存器的值相加,结果在 ax中(4) 把al中的字节写入用基址变址寻址的存储单元中(5) 用si寄存器和位移量value的寄存器相对寻址方式,从存储单元中读出一个字送入寄存器ax(6) 将ax中的数与偏移地址为2000h存储单元的数相减,结果在ax中查看正确答案(1) mov ax,bx
19、(2) mov cl,15 (3) add ax,bx (4) mov bx+si,al (5) mov ax,valuesi (6) sub ax,ds:2000h9 写出用下列寻址方式将存储单元x中的第3个字取出,ax与其相加再放入y单元的指令序列。(1)直接寻址 (2)寄存器相对寻址 (3)基址变址查看正确答案(1) add ax,x+4mov y,ax (2) mov bx,4add ax,xbx mov y,ax(3) mov bx,4mov si,offset xadd ax,bx+simov y,ax10
20、60; 在数据寻址方式中,哪种寻址方式的操作数与指令一起存放在代码段?查看正确答案立即寻址方式中操作数(立即数)和指令一起存放在代码段中。习题四1 汇编语言程序有什么特点?什么是源程序?2 简要说明从源程序到可执行程序的操作过程。3 什么是伪指令?汇编指令与伪指令有何区别?写出4种常用的伪指令。4 8086指令系统分为哪几类?举例说明算术运算类指令的用法。5
21、;在8086汇编语言中,哪些段寄存器可以用mov指令赋值,哪些段寄存器不允许?6 堆栈段寄存器ss和栈指针sp可以修改吗?如何修改?7 入栈指令push和出栈指令pop可以保存字节数据吗?要保存的话,如何实现?8 有哪些方法可以获得操作数的有效地址?9 解释下列伪指令的作用:(1) assume cs:code,ds:data (2) end start(3) value dw 12,35,-6 (4) stri
22、ng db input:(5) mess db 5 dup(?) (6) xx dd 12345678h(7) org 0320h (8) cont equ 2*3.1410 根据题目,写出相关伪指令:(1) 定义数据段data,并在数据段中定义两个字单元x、y,初始值都是0(2) 定义一个字符串sring,保存computer(3) 定义有100个字节单元的count数组,初始值均为空(4) 用赋值伪指令定义pi为3.14(5) 用类型操作符label将value单元定义为字节型查看正确答案(1) data segmentx dw 0y dw 0
23、data ends(2) string db computer(3) count db 100 dup(?)(4) pi equ 3.14(5) value label byte11 下列伪指令有错吗?如果有错,请指出错误原因:(1) x1 db 35h,0,-80 (2) x2 db 35,260,-1 (3) x3 db 1234h(4) x4 dw 100 (5) x5 dw 100(?) (6) x6 dd ab查看正确答案(1)对。(2)错。260超出了字节范围。(3)错。x3是字节型,1234h是字型,不匹配。(4)对。(5)错。缺少d
24、up。(6)对。12 写出下列指令的执行结果:table db 3,33,33 h(1) mov al,table(2) mov ax,word ptr table(3) mov dx,offset table(4) mov cl,table+2(5) mov bx,seg table(6) mov bx,type table(7) lea dx,table查看正确答案(1)al=3。(2)ax=2103h。(3)dx=table的偏移地址。(4)cl=33h(5)bx=table的段地址。(6)bx=1。(7)dx= table的偏移地址。13&
25、#160; 写出指令序列,分别求两个双精度数20125d68h和100349a6h的相加和相减运算。查看正确答案mov dx,2012hmov ax,5d68hmov cx,1003hmov bx,49a6hadd ax,bx (sub ax,bx)adc dx,cx (sbb dx,cx)14 写出将dx、ax中的32位无符号数减cx中的16位无符号数,结果存放在dx、ax中的指令序列。查看正确答案sub ax,cxsbb dx,015 写出将extra段的段地址传送
26、给es寄存器的指令序列。查看正确答案mov ax,extramov es,ax16 根据给出的算式,写出指令序列(设x、y、w为字节型,z为字型):(1) z=5(x16)(2) z=x/4y(3) z=8xy/16w2(4) z= (xy)(xy) x/y查看正确答案(1) mov al,16add al,xmov bl,5imul blmov z,ax(2) mov bl,4mov al,xidiv blsub al,ymov z,ax(3) mov al,xmov bl,8imul blmov dx,axmov ah,0mov al,ymov
27、 bl,16idiv blcbwadd dx,axmov ah,0mov al,wimul alsub dx,axmov z,dx(4) mov al,xadd al,ymov bl,xsub bl,ymov ah,0imul blmov z,axmov al,xidiv ycbwsub z,ax17 分析下列程序段执行情况,给出结果:x db 5,15,30y db 22,14,6z dw ?mov bx,offset xmov al,bxadd al,yinc bxsub al,bxmov bl,y+1imul blmov z,ax查看正确答案
28、z= (5+22-15)*14= 16818 源程序在汇编过程中,系统是如何获知程序从哪儿开始执行的?查看正确答案从伪指令end start处获知程序从start标号开始。19 两个数8576h和9988h,分别作减法和加法运算,写出指令及运算结果。运算结果影响哪些标志?查看正确答案(1)减法:
29、0; (2) 加法:mov ax,8576h mov ax,8576hmov bx,9988h
30、 mov bx,9988hsub ax,bx add ax,bx结果:ax=ebeeh
31、; 结果:ax=1efehcf=1,of=0,zf=0,sf=1 cf=1,of=1,zf=0,sf=020 乘法和除法指令对于字和字节操作是如何进行的?21 写出指令,用压缩bcd码实现下列运算:(1) y1=56+34(2) y2=12835(3) y3=68+2345查看正
32、确答案(1) mov al,56hmov bl,34hadd al,bldaamov y1,al(2) mov ax,128hmov bx,35hsub ax,bxdasmov y2,al(3) mov al,68hmov bl,23hadd al,blmov bl,45hsub al,bldasmov y3,al22 写出指令,用非压缩bcd码实现下列运算:(1) z1=78+46(2) z2=9527(3) z3=12×633(4) z4=(74+18)/6查看正确答案(1) mov ax,0708hmov bx,0406hadd a
33、l,bladd ah,bh ;不用带进位加aaa ;加法调整,含进位调整mov bx,axxchg ah,al ;高4位调整aaamov bh,almov z1,bx ;保存十位、各位,百位在cf中(2) mov ax,0905hmov bx,0207hsub al,blsub ah,bh ;不用带借位减aas ;减法调整mov z2,ax(3) mov ax,0102hmov bx,0006hmul bx ;乘法先不用调整mov bx,0303hsub ax,bxaas ;减法调整mov z3,ax(4) mov ax,0704hmov bx,0108hadd al,bladd ah,bha
34、aa ;加法调整mov bl,6aad ;除法调整div blmov bh,ah ;余数保存在bhand ax,000fhaaa ;商调整mov z4,ax ;保存商23 编程序。从键盘输入一个数字,去掉ascii码后保存到buff单元。查看正确答案.model small.databuff db ?.codestart:mov ax,datamov ds,axmov ah,1 ;键盘输入int 21hsub al,30h ;去掉ascii码mov buff,almov ah,4chint 21hend start24
35、60; 编程序。将键盘输入的小写字母变为大写字母显示在屏幕上。查看正确答案.model small.codestart:mov ah,1 ;键盘输入int 21hsub al,20h ;变为大写mov dl,almov ah,2int 21hmov ah,4chint 21hend start25 x和y都是字节型数据,编写将两数相加的结果显示出来的程序段。查看正确答案.model small.datax db 12hy db 34h.codestart:mov ax,datamov ds,axmov al,xadd al,y ;结果为4
36、6hmov ah,al ;ah=46hand al,0fh ;al=06hmov cl,4rol ah,cl ;ah=64hand ah,0fh ;ah=04hadd ax,3030h ;ax=3436hmov bx,axmov dl,bh ;显示4mov ah,2 int 21hmov dl,bl ;显示6int 21hmov ah,4chint 21hend start26 编写程序,建立一个09的平方根表,查表可得某数的平方根。查看正确答案 data segment x db '0.000','1.000
37、39;,'1.414','1.732','2.000'db '2.236','2.449','2.646','2.828','3.000' ;建立字符表y db 5 dup(?) ;存放查到平方根u db 3 ;要查的数data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov al,u ;要查的数mov cl,5mul cl ;u*5=15(号单元开始)mov ah,0mov bx
38、,ax ;地址保存到bxmov si,0let1:mov al,xbx ;取出平方根数字mov ysi,al ;存入yinc siinc bxloop let1 ;循环取出5次mov ah,4chint 21hcode endsend start27 编写查表程序。建立一个班级姓名表,给出学号,可显示出其姓名。查看正确答案.model small.datax1 db 'zhang yan $' ;姓名为10个字符宽度x2 db 'li li $'x3 db 'wang lan $'x4 db '
39、;zhao xue $'x5 db 'li jiang $'u db 3 ;要查的学号.code start:mov ax,datamov ds,axmov al,u ;给出学号mov cl,10mul cl ;u*10=30(号单元开始)mov ah,0mov dx,ax ;地址保存到dxmov ah,9 ;9号功能显示字符串int 21hmov ah,4chint 21hend start28 编程实现公式计算z=x/4+16y。查看正确答案.model small.datax db 4 y db 6z db ?.cod
40、e start:mov ax,datamov ds,axmov al,x ;mov cl,2sar al,cl ; x/4mov cl,4mov bl,ysal bl,cl ;16yadd al,bl ;x/4+16ymov z,almov ah,4chint 21hend start29 编写程序段,将al中的数乘以6,与cl相减后再除以3;把商保存到y单元,余数保存到y+1单元。查看正确答案.model small.datay db ?,?.code start:mov ax,datamov ds,axmov al,3 ;设al=3mov cl
41、,6mul cl ;al*6mov cl,4 ;设cl=4sub al,cl ;相减mov bl,3 idiv bl ; /3mov y,al ;商mov y+1,ah ;余数mov ah,4chint 21hend start30 用简化的程序格式编程序,在屏幕的5行12列上显示红底白字的字符串“come”。习题五1 转移指令分为哪两大类?转移指令的操作码和操作数如何表示?2 写出与转移地址有关的寻址方式。3
42、根据标志位转移的指令有哪些?执行什么操作时可以改变标志?4 简述cpu实现分支的过程。5 在短转移格式下,指令跳转的范围是多少?6 在比较转移指令之前可以用什么指令进行判断?7 比较转移指令为什么要分为无符号数比较和带符号数比较两类?8 汇编语言可以控制和改变二进制某一位。有哪些指令可执行位操作?9 test指令是如何实现
43、判断的?请举例说明。10 移位指令影响标志位吗?影响哪些标志位?11 已知(bx)=7890h,写出指令实现逻辑左移2位。请问哪个标志位改变了?查看正确答案进位标志cf=1 12 分析下列程序段,给出执行结果: mov ax,1234h
44、0; mov cl,3 sar ax,cl and ax,0fh
45、0; add al,30h mov dl,al mov ah,2 int 21h查看正确答案先把ax的值除以8等于024
46、6h,再把高12位屏蔽为0,剩下al=06h加上30h变为ascii码显示出来。13 试说明下列程序段完成了什么操作? mov ax,x mov bx,y &
47、#160; cmp ax,0 jge aa1 neg ax jmp
48、60; aa2 aa1: sub ax,bx aa2: mov z,ax查看正确答案判断x>0,是,z=x-y;否则z=x的绝对值 14 指出下列指令的错误所在。 (1) and si,3(2) sub ds,ax(3) push 5(4) or 80h,al
49、(5) cmp bx,table(6) rol al,3查看正确答案(1) 目的操作数是存储单元时,要用ptr伪操作指出单元的属性 (2)ds段寄存器使用非法 (3)立即数使用非法 (4) 目的操作数不允许是立即数 (5) 两个操作数不允许都是存储单元 (6)移位次数超过1要用cl表示。15 写出将al.4清零的指令。(al中除第4位外的其他位保持不变)。查看正确答案and al,11011111b16 分别指出每条指令执行结果:
50、 mov al,37h (1) and al,0f0h (2) or al,03h (3) not al (4) xor al,0fh查看正确答案(1) al=30h (2) al=b7h (3) al=c8h (4)al=38h17 简述操作系统对可执行程序的加载和执行过程。18
51、0; psp程序段前缀是什么时候建立的?占用多大内存空间?保存了什么内容、作用是什么?19 转移指令中的标号在汇编时被翻译成什么值?这种方法的优点是什么? 20 无条件转移指令jmp $+2作用是什么?其转移地址是多少?21 什么是分支表?怎样用分支表实现多路分支?22 哪些逻辑指令可以使操作数清零?请写出指令。23 用逻辑指令实现将ax的低4位清
52、0。24 用移位指令实现ax的高8位和低8位交换。25 写出判断一个操作数是否为负数的程序段。26 写出程序段。判断字节单元x中的数是否为偶数,是偶数则显示y,否则显示n。27 分支程序设计。完成如下公式的计算,请写出程序。 (x+3)/2 x>0 y= 0
53、0; x=0 x×4 x<0查看正确答案分支程序设计。完成如下公式的计算,请写出程序。 (x+3)/2 x>0y= 0
54、160; x=0 x×4 x<0程序如下:data segmentx db 23y db ?data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov al,xcmp al,0je sub2jg sub1mov cl,2sal al,cljmp
55、short sub2sub1:add al,3sar al,1sub2: mov y,almov ah,4chint 21hcode endsend start28 设x、y、z为字节单元。如果x0,z=4x-y/16,否则,z=x的绝对值。编程序实现。查看正确答案设x、y、z为字节单元。如果x0,z=4x-y/16,否则,z=x的绝对值。编程序实现。程序如下:data segmentx db 3y db 5z db ?data endscode segmentassume cs:code,ds:datastart: mov ax,datamov
56、ds,axmov al,xcmp al,0jl ss1mov cl,2sal al,clmov bl,ymov cl,4sar bl,clsub al,bljmp out1ss1: neg alout1: mov z,almov ah,4chint 21hcode endsend start29 字数组m中有10个数据,分类统计其中正数、负数、0的个数,分别存入posi、nega、zero 单元。查看正确答案字数组m中有10个数据,分类统计其中正数、负数、0的个数,分别存入posi、nega、zero 单元。程序如下:data1 segmentm
57、dw 21,-34,32,112,-324,0,76,0,48,50posi dw ?nega dw ?zero dw ?data1 endscode1 segmentassume cs: code1,ds:data1start: mov ax,data1mov ds,axmov cx,10lea si,magain: cmp word ptr si,0jl lowerje equalinc posijmp lpp1lower: inc negajmp lpp1 equal: inc zerolpp1: add si,2dec cxjnz againmov ah,4chint 21hcode1
58、 endsend start30 试编写程序,从键盘接收一英文单词,以空格结束,将其存入buf开始的存储单元中,并在最后加上字符串结束符$。查看正确答案试编写程序,从键盘接收一英文单词,以空格结束,将其存入buf开始的存储单元中,并在最后加上字符串结束符$。主要程序部分:lea bx,buflop: mov ah,1int 21hcmp al,20hje nextmov bx,alinc bxjmp lopnext: mov byte ptrbx,$31 编程。将ax寄存器中的16位数分成4组,每组4位
59、,从低到高分别放在al,bl,cl,dl中。查看正确答案编程。将ax寄存器中的16位数分成4组,每组4位,从低到高分别放在al,bl,cl,dl中。程序段:start:mov ax,1234hmov bx,axand al,0fh ;4and bl,0f0h ;3and ah,0fhmov cl,ah ;2and bh,0f0hmov dl,bh ;1习题六1 循环指令有哪几种?分别写出指令格式及作用。2 循环指令根据什么判断循环是否结束?3 用转移指令能否
60、构成循环?试举例说明。4 多重循环的循环控制如何实现?5 在多重循环中转移指令的使用要注意哪些问题?6 串处理过程中用到循环了吗?怎么使用的?7 列出学过的串处理指令。8 在串处理过程中,如何找到源串和目的串? 9 串处理指令都应和哪些重复前缀配合使用?请举例说明。10 在串处
61、理中,方向标志df的作用是什么?方向标志如何设置?11 写出下列程序段的执行结果。buff db 10,22,14,6,31total db ?mov bx,offset buffmov cx,total-buffmov al,0aa1: add al,bxinc bxloop aa1mov total,al查看正确答案累加和total=8312 分析下列程序段的功能。x db 2,-3,15,0,9,4lea bx,xmov cx,6mov ax,0aa2:mov al,bxcmp al,0jne n
62、extinc ahnext:inc bxloop aa2查看正确答案循环统计x中0的个数13 判断下列程序段能否完成给定功能。如有错误,请指出并改正。(1)统计al中1的个数。要求al保持原值。mov bl,0mov cx,8bb1:rcl al,1jnc nextinc blnext:loop bb1(2)在alpha中查找字母”t”,找到后退出循环。alpha db “ertyu”mov bx,offset alphamov cx,5bb2:cmp bx,tloopne bb2查看正确答案(1) 将bb1:rcl al,1改为bb1:rol a
63、l,1(2) 将bb2:cmp bx,t loopne bb2改为:dec bxbb2:inc bxcmp bx,tloopne bb214 源串strg1和目的串strg2分别放在数据段和附加段中,请写出含有各种段定义的程序段,完成将strg1传送到strg2的功能。15 写出计算y=1×2+3×4+5×6+7×8+9×10的程序段。查看正确答案计
64、算y=1×2+3×4+5×6+7×8+9×10的程序段答案:mov al,1mov bl,2mov dx,0mov cx,5aa1:mul bladd dx,axinc blmov al,blinc blloop aa116 写程序。查找catt表中的字符”,找到后将sign单元置1,否则sign单元置0。查看正确答案写程序段。查找catt表中的字符”,找到后将sign单元置1,否则sign单元置0。catt db 'asdddd'sign db ?mov ax,extramov e
65、s,axmov sign,0mov al,''lea di,cattcldmov cx,7repnz scasbjcxz neemov sign,1nee: mov ah,4chint 21h17 写程序段。在长度为n的字数组value中统计负数的个数并保存到ax中。查看正确答案写程序段。在长度为n的字数组value中统计负数的个数并保存到ax中。value dw 2,-4,-5,3,6,6,-8n equ ($-value)/2 ;元素个数start: mov ax,datamov ds,axmov cx,nmov bx,0mov
66、 ax,0rept1:mov si,valuebx ;取出元素cmp si,0 jge let1 ;0 转let1inc ax ;为负数,ax加1let1: add bx,2loop rept118 编程。从键盘输入一个数字,在屏幕上显示出以该数字开始的10个数字串。查看正确答案从键盘输入一个数字,在屏幕上显示出以该数字开始10个数字串。code segmentassume cs:codestart: mov ah,1int 21hmov cx,10mov bl,alrept1: cmp bl,'9'jle nextsub bl,1
67、0next: mov dl,blmov ah,2int 21hinc blloop rept1mov ah,4chint 21hcode endsend start19 编程。比较两个字符串是否相同,统计并显示出相同的字符个数和不同的字符个数。查看正确答案data segmentbunch1 db 'stadent'bunch2 db 'student'data endscode segmentassume cs:code,ds:data,es:datastart:mov ax,datamov ds,axmov es
68、,axlea si,bunch1lea di,bunch2mov bx,0 ;bh=相同的个数,bl=不同的个数mov cx,7let1:mov al,sicmp al,di ;两字符比较jz equl ;相同转equlinc bl ;不同bl加1jmp out1equl: inc bhout1:inc siinc diloop let1mov dl,'n' ;显示'n',代表不同mov ah,2hint 21hadd bl,30h ;加上ascii码mov dl,bl ;显示不同的个数int 21hmov dl,'e' ;显示'e
69、9;,代表相同int 21hadd bh,30hmov dl,bh ;显示相同的个数int 21h mov ah,4chint 21hcode endsend start 20 编程。在found字数组中找出最小数存入min单元。21 stri单元存有10个字符的字符串,以0结尾,编程去掉其中的空格符,并将后续字符向前递补。查看正确答案data segmentstr db sdabf g h0data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlea di,strspace:mov cx,10mov al,dicmp al,0je outcmp al,20hje deletejmp exitsub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车辆玻璃订购协议
- 还建房屋买卖合同的补充协议
- 违章行为自白书
- 速递物流合同
- 配电箱购销合同的信用证融资
- 酒类采购合同示例
- 重建信誉我向同学保证
- 钢筋工分包合同条款范例
- 铁粉购销协议样本
- 银行短期借款协议
- 2024版国开电大法学本科《国际法》历年期末考试试题及答案汇编
- 构建复合型高技能人才培养“岗课赛证”融通评价体系研究
- 空乘大学生职业生涯规划
- T-NAHIEM 96-2023 静脉用药调配中心建设与配置标准
- 儿童心肺复苏理论知识考核试题及答案
- 细菌性角膜溃疡的护理查房
- 个人简历电子版表格下载
- 200个句子涵盖了高考英语3500词汇(诵读加记忆)
- 婴幼儿托育服务与管理的职业生涯规划职业目标自我分析职业定位实施计划
- 半导体智能制造与工厂自动化
- 设备的前后期管理与改造
评论
0/150
提交评论