汇编语言——子程序的参数.
- 格式:ppt
- 大小:40.00 KB
- 文档页数:14
汇编语言程序设计(第四版)第4章【课后答案】汇编语言程序设计第四版【课后习题答案】--囮裑為檤第4章基本汇编语言程序设计〔习题4.1〕例题4.2如果要求算术右移8位,如何修改程序。
〔解答〕思路:首先由最高位字节向次低位字节传送……次低位字节向最低位字节传送(共7次);再判最高位字节符号位,如为0,送00h到最高位字节;如为1,送ffh到最高位字节。
传送可参考例题4.2,不过应从第一号字节送第零号字节,……最高位字节向次低位字节传送;也可以用循环来完成:.model small.stack 256.dataqvar dq 1234567887654321h.code.startupmov cx,7mov si,1again: mov al, byte ptr qvar[si]mov byte ptr qvar[si-1],alinc siloop againtest al,80hjz ezzmov bl,0ffhjmp doneezz: mov bl,0done: mov byte ptr qvar[7],bl.exit 0end〔习题4.2〕例题4.2如果要求算术左移7位,如何用移位指令实现。
〔解答〕思路:可设计外循环体为8个字节左移一次,方法是:最低位字节算术左移一次,次低位字节至最高位字节依次带CF 位循环左移一次(内循环共8次),外循环体控制执行7次即可。
.model small.stack 256.dataqvar dq 1234567887654321h.code.startupmov dx, 7 ;外循环次数mov ax, byte ptr qvar[0] ;最低位字节送axlpp: shl ax, 1 ;最低位字节左移一次,其d7移入CF位mov si, 1mov cx, 7 ;内循环次数again: rcl byte ptr qvar[si], 1 ;高位字节依次左移P50inc siloop againdec dxjnz lpp.exit 0.end〔习题4.3〕将AX寄存器中的16位数连续4位分成一组,共4组,然后把这4组数分别放在AL、BL、CL和DL寄存器中。
汇编语言习题与答案一、填空题:把答案填在题中横线上。
1. 8位无符号整数的表示范围为0~255,写成16进制形式为00H~__________;8位有符号整数的表示范围为-128~+127,写成16进制形式为__________~__________。
2. 8086/8088分段管理存储空间,但每段容量最大不超过__________。
3. 逻辑地址为F000:100的存储单元,其物理地址是__________。
4. 用来指示堆栈栈顶的偏移地址的是__________寄存器。
5. 若要测试AL寄存器D4、D2、D0位是否都为0,则可使用__________指令语句(含操作数),以产生转移条件。
这条指令执行后将利用标志位__________实现转移。
6. 若定义:bdata db 2 dup(1,2,2dup(3),4),则dbata变量前5个单元从低地址到高地址的数据依次是__________。
7. 假设varw是一个16位变量,则指令“mov varw,ax”的目的操作数的寻址方式是__________。
(二、选择题:在每小题给出的四个选项中,只有一项是符合题目要求的,请把所选项前的字母填在题后的括号内。
1.对汇编语言源程序进行翻译,形成OBJ文件的是A.汇编程序B.连接程序C.编辑程序D.调试程序[]2.下列各个8位二进制数的补码中,真值最大的是A. B.[]语句中,表达常数不正确的形式是B. A346H`C.’A’D. 5600 []4.如果SS=600H,则说明堆栈段物理地址起始于[]50 dup()预留了存储空间的字节数是[]6.下列指令中有操作数在代码段中的是ax,34h ax,bxword ptr [34h] ax,[34h] []@7.假设AL=5,要使得AL=0FAH,应执行的指令是A. not al al,0fhal,0f0h al,0fh []8.设置逻辑段应该采用的一对伪指令是ends end startendp endm []9.条件转移指令JNE条件是=0 =1=0 =1 []10.逻辑移位指令SHL可用于!A.有符号数乘以2B.有符号数除以2C.无符号数乘以2D.无符号数除以2 []11.执行“in al, dx”指令后,进入AL寄存器的数据来自A.寄存器B.存储器C.立即数D.外设端口[]12.将十进制数75以压缩BCD码送入AX,正确的指令是ax,0075 B. mov ax,0705ax,0075h D. mov ax,0705h []13.如下指令可将AX寄存器内容改变的是A. cmp ax,bxB. test ax,bx?C. and ax,bxD. xchg ax,bx []14.设AH=10H,执行“neg ah”指令后,正确的结果是A. AH=10H、CF=1B. AH=F0H、CF=0C. AH=10H、CF=0D. AH=F0H、CF=1 []15.如下程序段:again: mov es:[di],alinc diloop again可用指令__________完成相同的功能。
汇编语言参数传递在计算机科学领域中,汇编语言是一种低级语言,被用于指令的编写和处理器的控制。
汇编语言的特点之一是参数传递的使用,它允许将数据或信息传递给子程序或函数。
本文将探讨汇编语言中参数传递的不同方式和相关技术。
1. 立即数传递立即数传递是指直接将数值嵌入指令中作为参数传递的方式。
在汇编语言中,可以使用"mov"(move)指令来将立即数传递给寄存器或存储器。
例如,下面的代码将数值10传递给寄存器ax:```mov ax, 10```2. 寄存器传递寄存器传递是指将数据存储在寄存器中,并通过寄存器传递给子程序或函数。
汇编语言中的寄存器具有特定的名称和功能,如ax、bx、cx和dx等。
下面的示例代码演示了如何使用寄存器传递参数:```mov ax, 10mov bx, 20add ax, bx ; 将bx寄存器中的值加到ax中```3. 存储器传递存储器传递是指将数据存储在内存中,并通过内存地址传递给子程序或函数。
在汇编语言中,可以使用存储器地址作为参数传递给指令。
下面的代码演示了如何使用存储器传递参数:```mov bx, [var] ; 将存储在var地址处的值传递给bx寄存器```4. 栈传递栈传递是指使用栈(堆栈)数据结构来传递参数。
在汇编语言中,栈是一种用于存储和管理函数调用的数据结构。
通过将参数压入栈中,然后在子程序内部弹出,可以实现参数传递的目的。
下面的示例代码演示了如何使用栈传递参数:```push 10 ; 将数值10推入栈中push 20 ; 将数值20推入栈中call myFunction ; 调用名为myFunction的子程序```总结:在汇编语言中,参数传递可以通过立即数传递、寄存器传递、存储器传递和栈传递等多种方式来实现。
不同的传递方式适用于不同的场景和需求。
对于复杂的程序,通常会结合使用多种传递方式来实现参数传递的目的。
正确理解和使用参数传递方式对于开发高效、可靠的汇编语言程序非常重要。
汇编语言之子程序汇编语言是一种底层编程语言,是计算机指令的集合表示形式。
在汇编语言中,子程序是一段独立的、可重复使用的代码片段,可以在程序中被多次调用。
子程序可以帮助我们实现代码的模块化,提高代码的可读性和可维护性。
本文将介绍如何在汇编语言中使用子程序以及其工作原理。
一、子程序的定义和使用在汇编语言中,子程序由一系列指令组成,这些指令可以完成特定的功能。
子程序可以通过call指令被调用,执行完子程序后会返回到调用子程序的指令处,继续执行程序的下一条指令。
在使用子程序前,我们需要先定义子程序。
定义子程序的语法如下:```subroutine_name:; 子程序代码ret```其中,subroutine_name是子程序的名称,可以根据实际需求自定义。
ret指令用于返回到调用子程序的指令处,继续执行程序的下一条指令。
调用子程序的语法如下:```call subroutine_name```其中,subroutine_name是要调用的子程序的名称。
二、传递参数和返回值子程序可以接收参数,并且可以有返回值。
在调用子程序时,可以通过寄存器或栈来传递参数。
在子程序内部,可以通过相应的寄存器或栈地址来获取参数的值。
例如,我们定义一个计算两个数之和的子程序add:```add:mov ax, [bp+4] ; 获取第一个参数的值add ax, [bp+6] ; 获取第二个参数的值ret```在主程序中调用add子程序:```mov ax, 5 ; 第一个参数mov bx, 10 ; 第二个参数call add ; 调用add子程序; 此时ax寄存器中的值为15,即5+10的结果```在子程序add中,我们通过寻址方式获取传递的参数,并将计算结果存入ax寄存器中,供主程序使用。
三、保存和恢复寄存器在汇编语言中,调用子程序时需要保存和恢复寄存器的值,以保证程序的正确执行。
在调用子程序前,我们可以使用push指令将需要保存的寄存器值压栈,然后在子程序的开头使用相应的pop指令将值弹出并恢复。
2.1已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12 34 56 78H,[21200H]~[21203H]依次存放2A 4C B7 65H,说明下列每条指令执行完后AX寄存器的内容。
(1)mov ax,1200h(2)mov ax,bx(3)mov ax,[1200h](4)mov ax,[bx](5)mov ax,[bx+1100h](6)mov ax,[bx+si](7)mov ax,[bx][si+1100h]〔解答〕(1)AX=1200H(2)AX=0100H(3)AX=4C2AH ;偏移地址=bx=0100h(4)AX=3412H ;偏移地址=bx=0100h(5)AX=4C2AH ;偏移地址=bx+1100h=1200h(6)AX=7856H ;偏移地址=bx+si=0100h+0002h=0102h(7)AX=65B7H ;偏移地址=bx+si+1100h=0100h+0002h+1100h=1202h〔习题2.2〕指出下列指令的错误(1)mov cx,dl(2)mov ip,ax(3)mov es,1234h(4)mov es,ds(5)mov al,300(6)mov [sp],ax(7)mov ax,bx+di(8)mov 20h,ah〔解答〕(1)两操作数类型不匹配(2)IP指令指针禁止用户访问(3)立即数不允许传给段寄存器(4)段寄存器之间不允许传送(5)两操作数类型不匹配(6)目的操作数应为[ SI ](7)源操作数应为[BX+DI](8)立即数不能作目的操作数〔习题2.5〕已知SS = 2200H、SP = 00B0H,画图说明执行下面指令序列时,堆栈区和SP的内容如何变化?mov ax,8057hpush axmov ax,0f79hpush axpop bxpop [bx]〔解答〕mov ax,8057hpush axmov ax,0f79hpush axpop bx ;bx=0f79hpop [bx] ;DS:[0f79h]=8057h〔习题2.6〕给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:mov al,89hadd al,aladd al,9dhcmp al,0bchsub al,aldec alinc al〔解答〕mov al,89h ; AL=89h CF ZF SF OF PFadd al,al ; AL=12h 1 0 0 1 1; 1000 1001+1000 100110001 0010add al,9dh ; AL=0afh 0 0 1 0 1; 0001 0010+ 1001 11011010 1111cmp al,0bch ; AL=0afh 1 0 1 0 1; 1010 1111-1011 1100* 0100 0011sub al,al ; AL=00h 0 1 0 0 1dec al ; AL=0ffh 0 0 1 0 1 ; 0000 0000- 0000 0001*1111 1111inc al ; AL=00h 0 1 0 0 1 ;1111 1111+0000 0001*1111 1111必考:〔习题2.10〕指出下列指令的错误:(1)xchg [si],30h (2)pop cs(3)sub [si],[di](4)push ah(5)adc ax,ds(6)add [si],80h(7)in al,3fch(8)out dx,ah〔解答〕(1)xchg的操作数不能是立即数(2)不应对CS直接赋值(3)两个操作数不能都是存储单元(4)堆栈的操作数不能是字节量(5)adc的操作数不能是段寄存器(6)没有确定是字节还是字操作(7)in不支持超过FFH的直接寻址(8)out只能以AL/AX为源操作数〔习题2.11〕给出下列各条指令执行后的结果,以及状态标志CF、OF、SF、ZF、PF的状态。
汇编子程序的一般结构组成。
汇编子程序是一段独立的程序代码,可以被其他程序调用。
它的一般结构由以下几个部分组成:
1. 子程序头部:包括子程序的名称、输入参数和输出参数的说
明等。
2. 参数传递:子程序的输入参数和输出参数通过栈或寄存器传递。
3. 保存寄存器:在进入子程序之前,需要保存一些寄存器的值,以免在执行子程序时被覆盖。
4. 执行程序:这是子程序的核心部分,实现子程序的功能。
5. 恢复寄存器:在退出子程序之前,需要还原保存的寄存器的值。
6. 返回值:如果子程序有返回值,需要将其保存在寄存器或栈中,并通过ret指令返回给调用程序。
以上是汇编子程序的一般结构组成,不同的子程序可能会有差异。
编写子程序需要熟悉汇编语言的基础知识和调试技巧,能够理解程序的逻辑思路、掌握数据结构和算法,才能编写出高效、稳定的子程序。
- 1 -。
汇编语言期末试卷及答案一、单项选择题1、CPU发出的访问存储器的地址是(A)。
A.物理地址B.偏移地址C.逻辑地址D.段地址2、下列指令中操作数在代码段中的是(A)。
A.MOV AL,42HB.ADD AL,BLC.SUB [BX],DID.INC [DI]3、与MOV BX,OFFSET VAR指令完全等效的指令是(D)。
A.MOV BX,VARB.LDS BX,VARC.LES BX,VARD.LEA BX,VAR4、表示过程定义结束的伪指令是(A)。
A.ENDPB.ENDSC.ENDD.ENDM5、BUF1 DB 3 DUP(0,2 DUP(1,2),3)COUNT EQU $ - BUF1符号COUNT等价的值是(B )。
A.6B.18C.16D.86、下列寄存器中,作为16位寄存器的是(D)。
A. ALB. BLC. CHD.DX7、在程序运行过程中,确定下一条指令的物理地址的计算表达式是(C)。
A.DS*16+SIB. ES*16+DIC. CS*16+IPD. SS*16+SP8、物理地址(10FF0H )=10H,(10FF1H )=20H,(10FF2H )=30H,从地址10FF1H中取一个字的内容是(B)。
A.1020HB.3020HC.2030HD.2010H9、将AX 清零,下列指令错误的是(C)。
A.SUB AX,AXB.XOR AX,AXC.OR AX,00HD.AND AX,00H10、完成同指令XCHG AX,BX相同功能的指令或指令序列是(D)。
A. MOV AX,BXB. MOV BX,AXC. PUSH AXD. MOV CX,AXPOP BX MOV AX,BXMOV BX,CX11、JMP BX 的目标地址的偏移量为(A)。
A. BX 的内容B. BX 所指向的内存单元的内容C. IP + BX 的内容D. IP + [BX]12、可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是(D)。
(汇编语言)练习题【一】填空题〔每题0.5分,共10分〕1、26.25D= B= O= H2、-56D的原码为 B,反码为 B,补码为 B。
3、0C51H的反码为 B,补码为 B。
4、十进制数87的压缩BCD码为 B,非压缩BCD码为 B。
6、设〔BX〕=1000H,〔DI〕=0010H,〔DS〕=2100H,在指令MOV AX,[BX+DI]中,源操作7、设BUF为数据段0234H单元的符号名,其中存放的内容为3456H。
写出以下指令单独执行后的结果。
〔1〕MOVAX,BUF〔AX〕=〔2〕LEAAX,BUF〔AX〕=8、子程序的参数传递方法包括、、。
9、实模式下存储器的20位物理地址由加形成。
【二】选择题〔每题1分,共10分〕1、以下通用数据传送指令的几种传送中,错误的传送方式是()。
A、从累加器到存储器B、马上数到存储器C、从寄存器到存储器D、从存储器到存储器2、使进位位置1的指令是()。
A、CLCB、CMCC、STCD、NOP3、设AL,BL中基本上有符号数,当AL<=BL时转至NEXT处,在CMPAL,BL指令后,应选用正确的条件转移指令是()。
A、JBEB、JNGC、JNAD、JNLE4、指令LOOPZ的循环执行条件是()。
A、CX<>0同时ZF=0B、CX<>0或ZF=0C、CX<>0同时ZF=1D、CX<>0或ZF=15、以下合法的变量名称是〔〕。
A、9BUFB、ADDC、BUF9D、ASSUME6、一条指令中目的操作数不同意使用的寻址方式是()。
A、寄存器寻址B、马上数寻址C、变址寻址D、寄存器间接寻址7、DOS的功能调用号必须送〔〕寄存器。
A、DLB、DHC、ALD、AH8、在实模式下,存储器治理采纳分段模式,每段大小可达〔〕。
A、64MB、1MC、64KD、16字节9、用来存放下一条将要执行的指令地址的寄存器是()。
A、SPB、IPC、BPD、CS10、要使串操作从低地址向高地址进行,应把标志位设置为()。
汇编练习题⼀、填空或选择题1. ⼆进制数1010111B转换成⼗六进制数是()。
A.A7HB.AEHC.87HD.57H2.设字长为8位,则有符号数-2的补码表⽰是()A.10000010B B.11111101B C.11111110B D.00000010B3.设字长为8位,则有符号数+2的补码表⽰是()A.10000010B B.11111101B C.11111110B D.00000010B4.书写汇编语⾔程序时规定,对字母开头的⼗六进制数,其前⾯必须加()A.0B.DC.BD.H5. IBM PC微机中,有符号数是⽤( )表⽰的A.原码B.补码C.反码D.BCD码6.⼗进制数-48的原码是,反码是,补码是。
7.典型的微机硬件系统是由系统总线将_____中央处理器_______、___储存器______和___输⼊输出⼦系统___连接起来的。
8.计算机中唯⼀代表存储空间中每个字节单元的地址的是(B)A.段地址B.物理地址C.逻辑地址D.偏移地址9. 在Intel8086微处理器中,⽤来保存各逻辑段的段地址的寄存器称为(C)。
A.变址寄存器B.标志寄存器C.段寄存器D.指令指针寄存器10.在Intel8086微处理器中,⽤来保存数据段的段地址的寄存器是( A )A.DS B. ES C. SS D. CS 【 ES附加段,CS代码段,SS堆栈段】11.在Intel8086微处理器中,⽤来保存代码段的段地址的寄存器是( D )A.DS B. ES C. SS D. CS12.在Intel8086微处理器中,⽤来保存堆栈段的段地址的寄存器是( C )A.DS B. ES C. SS D. CS13. 微处理器Intel8086中存放下⼀条将要执⾏的指令偏移地址的寄存器(A)A.SPB.AXC.DID.IP :存放代码段的偏移地址始终指向下⼀条的⾸地址14. 微处理器Intel8086中存放堆栈栈顶的偏移地址的寄存器是(A)A.SPB.AXC.DID.IP15. 下列答案中(A )反映了指令操作结果有溢出A.OF=1B.SF=1C.ZF=1D.CF=1进位标志CF零标志ZF符号标志SF溢出标志 OF 奇偶标志 PF 辅助进位标志AF16. 下列答案中(C )反映了指令操作结果等于0A.OF=1B.SF=1C.ZF=1D.CF=117. 下列答案中(B)反映了指令操作结果为负数A.OF=1B.SF=1C.ZF=1D.CF=118. 下列答案中(D)反映了指令操作结果有进位A.OF=1B.SF=1C.ZF=1D.CF=119.取指令时,默认的段寄存器是__________;堆栈操作时,默认的段寄存器是__________。
典型例题(与考试题型,考试范围相近)1.应用程序具有3个基本段,可执行指令应该保存于( A )。
A) 代码段B) 数据段C) 堆栈段D) 附加段2. 8位补码F3H要扩展成16位补码应该是( D ),这样其真值才不变。
A) F0F3H B) 00F3H C) 10F3H D) FFF3H3. “mov [ebx+8],eax”指令的目的操作数采用( C )寻址方式。
A) 存储器间接B) 寄存器C) 寄存器相对D) 立即数4. 执行“sar ebx,1”指令后,ebx最高D31位一定等于( D )A) 0 B) 1 C) D0位D) D30位5. 在代码段内的-128~127个字节前后范围的跳转,可以用( C )类型名表示。
A) WORD B) DWORD C) SHORT D) FAR6. 在Windows控制台环境,在当前光标显示信息应该使用( B )函数(功能)。
A) ReadConsole B) WriteConsoleC) MessageBox D) GetStdHandle7.汇编语言源程序经汇编后不能直接生成( C )A) OBJ文件B) LST文件C) EXE文件D) CRF文件8.在ADD指令中,两个操作数的物理位置不可以安排在( A )中。
A) 两个主存储单元B) 一个主存储单元和一个数据寄存器C) 两个数据寄存器D) 一个堆栈单元和一个数据寄存器9.假定ax=6987h,执行指令cmp ax,0eb30h后,则标志位CF和OF的状态( C )。
A)0,0 B) 0,1 C) 1,0 D) 1,110.假定esp=00120100h,eax=1f6c2107h,执行指令push ax后,存放数据07h的物理地址是( C )。
A) 00120104h B) 00120101h C) 001200fch D) 001200ffh11.下列对标志寄存器中标志位产生影响的指令是( B )A) jmp done B) shl eax, 2C) call subp D) not eax12. 假设CL=98H, 执行“MOVSX DX, CL”后,DX=( D )A) F098H B) 0098H C) 1098H D) FF98H13. “mov 80h[esi], eax”指令的目的操作数采用( C )寻址方式。
.实验八编写子程序(4学时)在本次实验中,我们将编写3个子程序,通过它们来认识几个常见的问题和掌握解决这些问题的方法。
同前面的所有实验一样,这个实验室必须独立完成的,在后面的课程中,将要用到这个实验中编写的3个子程序。
1、显示字符串显示字符串是下现实工作中经常要用到的功能,应该编写一个通用的字程序来实现这个功能。
我们应该提供灵活的调用接口,使调用者可以决定显示的位置(行、列)、内容和颜色。
该子程序描述如下:名称:show_str功能:在指定位置用指定颜色显示一个用0结束的字符串。
参数:(dh)=行号(取值范围0~24),(dl)=列号(取值范围0~79),(cl)=颜色,ds:si 指向字符串的首地址。
返回:无应用举例:在屏幕的8行3列,用绿色显示data段中的字符串。
assume cs: codedata segmentdb ‘Welcome to masm!’, 0data endscode segmentstart: mov dh, 8mov dl, 3mov cl, 2mov ax, datamov ds, axmov si, 0call show_strmov ax, 4c00hint 21hshow_str: :::code endsend start提示:(1)子程序的入口参数是屏幕上的行号和列号,注意在子程序内部要将它们转化为显存中的地址,首先要分析一下屏幕上的行列位置和显存地址的对应关系;(2)注意保存子程序中用到的相关寄存器;(3)这个子程序的内部处理和显存的结构密切相关,但是向外提供了与显存结构无关的接口。
通过调用这个子程序,进行字符串的显示时可以不必了解显存的结果,为编程提供了方便。
在实验中,注意体会这种设计思想。
. data segmentdb "Welcome to masm!"data endsstack segmentdb "Welcome to masm!"stack endscode segmentstart:mov dh, 8mov dl, 3mov cl, 2mov ax, datamov ds, axmov si, 0mov ax,0B800hmov es,axmov ax, stackmov ss, axmov sp,10hcall show_strmov ax, 4c00hint 21hshow_str:push dxpush cxmov al,160dec dhmul dhmov bx,axadd dx,siadd dl,dladd bl,dlmov cl,[si]mov ch,0jcxz okmov es:[bx],clpop cxmov es:[bx+1],clinc sipop dxjmp short show_strok:pop cxpop dxretcode endsend start2、解决除法溢出的问题前面讲过,div指令可以做除法。
第4章自测练习一、选择题(四选一)1.设计子程序应该采用的一对伪指令是___________。
A segment/endsB start/end startC proc/endpD macro/endm2.主程序将它的参数带给子程序,这个参数被称为。
A 入口参数B 出口参数C 寄存器参数D 存储器参数3.对应主程序CALL指令调用子程序,子程序结束通常采用_________ 指令返回主程序。
A jmpB iretC hltD ret4.下面程序段条件转移语句发生跳转的条件是AL=________ 。
cmp al,0fbhjnl nextA 80hB 8fhC 0f0hD 0ffh5.如下程序段中的“dec cx”指令执行了_________ 次。
mov cx,4jcxz nextagain:dec cxjnz againnext:...A 0B 1C 4D 5二、填空题1.程序的基本结构有、、和子程序四种。
2.子程序可以通过____________、___________、__________等传递参数.3.循环结构的程序通常由、和三部分组成。
4.如果主程序调用与它处在同一个代码段的子程序,这是调用。
5.下面程序段完成将存储单元abcd1中一个压缩型BCD码拆成两个非压缩型BCD码,高位BCD码存放在abcd3单元,低位BCD码存放在abcd2单元,再分别转换为对应的ASC Ⅱ码。
请将程序补充完整:mov al,abcdlmov cl,4Or al,30hmov abcd3,almov al,abcdlorl al,30hmov abcd2,al6.在下述程序段的每一空框内填人一个语句,以实现如下功能:字节变量string中存放着一个字符串,以0DH为结束标志,求串长度并送字变量count中。
lea si,stringxor cx,cxgoon:cmp al,[si]inc cx__________jmp goonnext:mov cont,cx7.阅读如下子程序,说明它的功能:sumary procxor ax,axxor dx,dx ;执行后,DX= 。