汇编语言第十章答案

10.1写出指令,选择显示方式10H,并将背景设为绿色。答:MOVAH,00HMOVAL,10H;选择显示方式10H(16色图形)INT10HMOVAH,10HMOVAL,00HMOVBH,10H;背景设为绿色(02H也可以,是用DEBUG调试出来的)MOVBL,0;选择0号调色板INT10H设置背景色也可用:MOVAH,0BH;设置背景色和调色板MOVBH,0;设置背景色功能MOVBL,8;绿色背景INT10H10.2如何使用INT10H的功能调用改变显示方式?答:在AH中设置功能号00H,在AL中设置显示方式值,调用INT10H即可。10.3VGA独有的一种显示方式是什么?

答:像素值为640×480,可同时显示16种颜色,这种显示方式(12H)是VGA独有的。10.4对于EGA和VGA显示适配器,使用显示方式13H时(只有VGA有),显示数据存在哪

里?答:显示数据存在显示存储器里。10.5对于VGA的显示方式13H时存放一屏信息需要多少字节的显存?

答:需要64000个字节。10.6利用BIOS功能编写图形程序:设置图形方式10H,选择背景色为蓝色,然后每行(水

平方向)显示一种颜色,每4行重复一次,一直到整个屏幕都显示出彩条。答:程序如下:TITLEGRAPHIX.COMcodesegsegmentassumecs:codeseg,ds:codeseg,ss:codesegorg100hmainprocfarmovah,00hmoval,10h;选择显示方式10h(16色图形)int10hmovah,0bhmovbh,00hmovbl,01h;背景设为蓝色int10hmovah,0bhmovbh,01hmovbl,00h;设置调色板0#int10hmovbx,0;显存的第0页movcx,0;起始列号为0列movdx,0;起始行号为0行line:movah,0ch;写像素点moval,blint10hinccxcmpcx,640jnelinemovcx,0;起始列号为0列incblandbl,03h;只显示四种颜色(因此保留最低两位)incdxcmpdx,350jnelineint20hmainendpcodesegendsendmain10.7修改10.6题的程序,使整个屏幕都显示出纵向的彩条。答:程序如下:TITLEGRAPHIX.COMcodesegsegmentassumecs:codeseg,ds:codeseg,ss:codesegorg100hmainprocfarmovah,00hmoval,10h;选择显示方式10h(16色图形)int10hmovah,0bhmovbh,00hmovbl,01h;背景设为蓝色int10hmovah,0bhmovbh,01hmovbl,00h;设置调色板0#int10hmovbx,0;显存的第0页movcx,0;起始列号为0列movdx,0;起始行号为0行line:movah,0ch;写像素点moval,blint10hincdxcmpdx,350jnelinemovdx,0;起始行号为0行incblandbl,03h;只显示四种颜色(因此保留最低两位)inccxcmpcx,640jnelineint20hmainendpcodesegendsendmain10.8按动键盘上的光标控制键,在屏幕上下左右任一方向上绘图,每画一点之前,由数字键0~3指定该点的颜色值,按动ESC键,绘图结束,返回DOS。答:程序如下:;DRAW—Programtodrawonscreenwithsursorarrows;For640*350colormodeupequ48h;向上键的扫描值downequ50h;向下键的扫描值leftequ4bh;向左键的扫描值rightequ4dh;向右键的扫描值escapeequ1bh;“Esc”charactercodesegsegmentmainprocfarassumecs:codeseg;clearscreenbyscrollingit,usingROMcallstart:movah,06hmoval,00hmovcx,00hmovdl,79movdh,24int10h;screenpointerwillbeinCX,DXregisters;rownumber(0to350d)inDX;coumnnumber(0to640d)inCXmovah,00hmoval,10h;选择显示方式10h(16色图形)int10hmovah,0bhmovbh,00hmovbl,01h;背景设为蓝色int10hmovah,0bhmovbh,01hmovbl,00h;设置调色板0#int10hmovdx,175;设在屏幕中心movcx,320;getcharacterfromkeyboardget_char:movah,0;键盘输入int16hcmpal,escapejzexitcmpal,33h;>‘3’吗?jgplotcmpal,30h;<‘0’吗?jlplotmovbl,al;是‘0’~‘3’,设置颜色andbl,03jmpget_char;figureoutwhichwaytogo,anddrawnewlineplot:moval,ahcmpal,upjnznot_updecdxnot_up:cmpal,downjnznot_downincdxnot_down:cmpal,rightjnznot_rightinccxnot_right:cmpal,leftjnzwritedeccx;useROMroutinetowritedot,reguiresrow#inDX,colinCX,colorinALwrite:moval,blmovah,0chint10hjmpget_charexit:int20hmainendpcodesegendsendstart10.9位屏蔽寄存器的作用是什么?在16色,640×480显示方式中如何使用位屏蔽寄存器?答:位屏蔽寄存器的作用是决定了新的像素值产生的方法。当位屏蔽寄存器的某位设为0时,相对应的像素值直接由锁存器写入显存;位屏蔽寄存器的某位为1时,所对应的像素值由锁存器中的像素值与CPU数据或置位/重置寄存器中相应位合并之后产生。10.10读映像选择寄存器的作用是什么?如果4个位面的内容都需要读取,读映像选择寄存

器应如何设置?答:读映像选择寄存器的作用是用于选择哪一个位面的字节读入CPU。读映像选择寄存器的0和1位,用来指定哪个位面的锁存器内容读到CPU。如果4个位面的内容都需要读取,则必须对同一地址执行4次读操作,在每次读之前,用指令分别设置读映像选择寄存器。10.11编写程序使一只“鸟”飞过屏幕。飞鸟的动作可由小写字母v(ASCII码76H)变为破折号(ASCII码0C4H)来模仿,这个字符先后交替在两列显示。鸟的开始位置是0列20行,每个字符显示0.5秒,然后消失。答:程序段如下:TITLEFlier.EXE;飞鸟程序

;******************************************DSEGSEGMENT;定义数据段BIRDDB76H,07;小写字母v及属性DB0C4H,07;破折号及属性DSEGENDS;以上定义数据段;******************************************CSEGSEGMENT;定义代码段MAINPROCFARASSUMECS:CSEG,DS:DSEGSTART:PUSHDS;设置返回DOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AX;给DS赋值MOVAH,0FH;取当前显示方式INT10HPUSHAX;保存当前显示方式(AL)MOVAH,0;设置彩色80×25文本方式MOVAL,3INT10HMOVDH,20;20行MOVDL,0;0列BEGIN:MOVSI,2;字符v和破折号“-”交替显示MOVCX,1;一次显示一个字符及属性LEADI,BIRDDISP:CMPDL,79;飞到79列就退出JAEEXITMOVAH,2;置光标位置INT10HMOVAH,9;在光标位置显示字符及属性MOVAL,[DI];取显示字符及属性MOVBL,[DI+1]INT10HCALLDELAY;延时0.5秒MOVAH,9;在光标位置显示字符及属性MOVAL,‘’;显示空格,擦除该位置的字符MOVBL,7INT10H

合集下载

《汇编语言程序设计》第十章:串操作指令与程序设计

《汇编语言程序设计》第十章:串操作指令与程序设计


南开大学 朱耀庭
10.2 字符串操作指令
硬件假设源字符串驻留在当前的数据段中,也就是说, 硬件假设源字符串驻留在当前的数据段中,也就是说,用 DS段基址寄存器寻址。当然,可以用一个段前缀字节否 段基址寄存器寻址。 段基址寄存器寻址 当然, 定这一假设,具体详见第4章寻址方式一节 章寻址方式一节。 定这一假设,具体详见第 章寻址方式一节。 目的字符串必须在当前的附加段内,也就是说, 目的字符串必须在当前的附加段内,也就是说,用ES段 段 基址寄存器寻址,并且不能用加段前缀的方法修改。 基址寄存器寻址,并且不能用加段前缀的方法修改。汇编 程序检查操作数的属性, 程序检查操作数的属性,以确定字符串中的元素是字节还 是字。但是,汇编程序并不用操作数的名称来访问字符串, 是字。但是,汇编程序并不用操作数的名称来访问字符串, 而是以SI(源变址 源变址)寄存器的内容作为位移量来访问源字符 而是以 源变址 寄存器的内容作为位移量来访问源字符 串当前的那个元素。并用DI(目的变址 目的变址)寄存器的内容作为 串当前的那个元素。并用 目的变址 寄存器的内容作为 当前目的串元素的位移量。也就是说, 当前目的串元素的位移量。也就是说,用地址表达式 DS:[SI]访问源串,用ES:[DI]访问目的串。 访问源串, 访问目的串。 访问源串 访问目的串 因此,在执行字符串指令之前,必须对SI和 寄存器进行 因此,在执行字符串指令之前,必须对 和DI寄存器进行 预置, 预置,将源字符串和目的字符串的头或尾的位移量分别送 至SI和DI中。 和 中
南开大学 朱耀庭
2. 串操作指令概述
●方法二: 方法二: L: MOVSB LOOP L 方法三: ●方法三: REP MOVSB 由此可见, 由此可见,REP MOVSB一条指令就可以实现原来的一段 一条指令就可以实现原来的一段 循环程序。这就是串操作的优点, 循环程序。这就是串操作的优点,也是指令系统的一种改 即循环程序以指令化的形式出现。 进,即循环程序以指令化的形式出现。 可见硬件重复比通过指令序列来实现对字节串或字串的循 环处理要简便许多。 环处理要简便许多。

汇编语言课后习题解答

汇编语言课后习题解答

.第1章基础知识检测点1.1(第9页)(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13位。

(2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。

(3)1KB的存储器可以存储8192(2^13)个bit,1024个Byte。

(4)1GB是1073741824(2^30)个Byte、1MB是1048576(2^20)个Byte、1KB是1024(2^10)个Byte。

(5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为: 64(KB)、1(MB)、16(MB)、4(GB)。

(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。

则它们一次可以传送的数据为: 1(B)、1(B)、2(B)、2(B)、4(B)。

(7)从内存中读取1024字节的数据,8086至少要读512次,80386至少要读256次。

(8)在存储器中,数据和程序以二进制形式存放。

..解题过程:(1)1KB=1024B,8KB=1024B*8=2^N,N=13。

(2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。

(3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。

(4)1GB=1073741824B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。

(5)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。

这样的CPU最多可以寻找2的N次方个内存单元。

(一个内存单元=1Byte)。

(6)8根数据总线一次可以传送8位二进制数据(即一个字节)。

(7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。

(8)在存储器中指令和数据没有任何区别,都是二进制信息。

汇编语言 第10章

汇编语言 第10章
行 程 序 第n条指令 第n+1条指令 例 行 程 序 中 断 服 务 程 序
3
中断控制技术主要应用在下列几种场合: 1、及时处理计算机中的突发故障。如执行指令时产生溢出,内存出 错等。 2、协调主机与外设工作速度的矛盾。 3、在实时控制系统中,及时处理各控制点的现场信息。 二、中断源及中断类型码 引起中断的原因或来源称为中断源。8086/8088CUP可以处理256种 类型的中断,这些中断源可分为两大类。 1、外部中断 非CUP内部原因产生的中断,称为外部中断。外部中断又分为非屏 蔽中断和可屏蔽中断。 可屏蔽中断 ——可以通过标志寄存器中的中断允许位IF控制CUP 是否响应中断请求。当IF=1,允许CUP响应可屏蔽中断;IF=0,禁止 CUP响应可屏蔽中断。IF由指令STI和CLI设置。 非屏蔽中断 ——不能由IF控制的中断源。当非屏蔽中断发生后, CUP一定要响应。
. . .
类型0 类型1 类型2
IP CS IP CS
类型254 类型255
5
四、中断过程 一个完整的中断过程包括以下四个步骤: 1、中断请求 一个中断源当满足一定条件后,将向CPU提出中断请求。 2、中断响应 CPU每执行完一条指令后,都要查询是否有中断请求送来,按照 一定次序查询各种中断源。如果有中断请求,根据一定的规定和条件 决定是否响应该中断。如果CPU响应中断,则将做以下几项工作: * 将标志寄存器内容压栈; * 保存断点(CS和IP内容压栈); * 禁止新的中断 (IF<=0, TF<=0); * 根据中断类型码从中断矢量表取出中 断服务程序的入口地址,送入IP和CS。 3、中断处理 执行中断服务程序就是完成中断处理。根据中断源的不同,所要 求的处理也不同。因此其中断处理程序也不相同。

最新《汇编语言程序设计》第10章

最新《汇编语言程序设计》第10章
10.4.2 目标文件级间的装配连接
目标模块连接就是通常所说的模块连接,是多模块程序设 计的主要形式。目标模块连接是把被装配的各个模块分别汇编 后生成各自的目标文件(.obj)经连接成一个可执行文件,它的 实现比源文件连接复杂。
1.目标模块连接 目标模块的连接时要使用连接程序LINK,通过LINK将各模 块连接成一个可执行程序。命令格式如下: LINK 模块l文件名十模块2文件名十模块3文件名十… 在LINK执行时,向使用者询问可执行文件名时,回答一个 指定的文件名,则连接后的可执行文件名就是回答中所指定的 文件名;如果没有回答指定文件名,则连接后可执行文件名将 取所提供的第一个目标文件名。假设MASM程序在D盘MASM目录 下,目标模块为file_1.obj、file_2.obj和file_3.obj,则 D:\MASM>LINK file_1+file_2+file_3 ObjectModeles[.obj]:↙ RunFile[file_1.exe]:mainfile↙ ListFile[nul.map]:mainfile↙ Libraries[.lib]:↙
《汇编语言程序设计》第10章
汇编语言 淮南师范学院重点课程
10.1.1 模块化程序设计概念
在设计大型程序时,常常要将整个问题分解为若干 个小问题,必要时还要将小问题再次分解为更小的若干 问题,每个小问题编写成独立的源文件,最后将所有的 源文件连接起来组合成一个大程序。也就是说,一个程 序往往由多个源文件组成,那么构成一个程序的各个相 对独立的源文件通常称为模块。这样把一个程序分成多 个功能相对独立的程序模块分别编制、调试后,再用连 接程序把它们连接在一起生成一个完整的程序的设计的 方法称为模块化程序设计。

汇编语言程序设计 习题与答案.ppt

汇编语言程序设计 习题与答案.ppt
习题与答案
❖第一章 基础知识 ❖第二章 80x86计算机组织 ❖第三章 指令系统和寻址方式 ❖第四章 汇编语言程序格式 ❖第五章 循环与分支程序设计 ❖第六章 子程序设计 ❖第七章 高级汇编语言技术 ❖第八章 输入输出程序设计
2020-6-17
谢谢阅读
1
第一章 基础知识 1. P14,1、2、6、7题。
系统程序。 13. 连接程序I:把若干模块连接成可执行文件的系统程序 14. 指令O:告诉CPU要执行的操作,在程序运行时执行 15. 伪指令N:由汇编程序在汇编过程中执行的指令。
谢谢阅读
2020-6-17
13
第三章 指令系统和寻址方式
• P107,1、2、3、4、5、8、13、14、15、17、 18、19、23、25、27、29、30、32、33、35、 37、38、49、51题。
– 逻辑地址:3010:007A
• 3010H * 16D + 7AH = 30100H + 7AH = 3017AH
– 总结:
• 同一物理地址,可用不同逻辑地址表示。
谢谢阅读
2020-6-17
11
第二章 80x86计算机组织 — 2.9
2.9:CPU、存储器、堆栈、IP、SP、状态标志 1. CPUM:分析、控制、执行指令的部件, 由ALU与寄存器等组成。 2. 存储器C:存储程序、数据等信息的记忆装 置,微机有RAM与ROM两种。 3. 堆栈D:以后进先出方式工作的存储空间。 4. IPB:指示下一条指令的地址。 5. SPA:保存当前栈顶地址的寄存器。 6. 状态标志L:记录指令操作结果的标志。 7. 控制标志K:控制操作的标志,如DF位。 8. 段寄存器J:保存各段起始地址的寄存器。

微机原理---汇编语言习题(完整参考答案)

微机原理---汇编语言习题(完整参考答案)

微机原理---汇编语⾔习题(完整参考答案)MIS 硬件原理复习内容1.数的不同进制转换,原码、反码、补码转码,BCD码2.掌握D触发器逻辑3.D触发器组成的电路:卡诺图及简化、真值表、波形图、状态转换图4.三态门、总线结构5.存储器扩展⽅法:地址总线的作⽤,内存分页技术,地址译码⽅法,译码器6.86X 系列CPU 结构框图7.8086寄存器组,寻址⽅式8.指令,伪指令9.数据定义,完整程序结构10.汇编语⾔上机及调试过程1.分别指出下列指令中的源操作数和⽬的操作数的寻址⽅式:(1)MOV SI, 200(2)MOV CX, DA TA[SI](3)ADD AX, [BX][DI](4)AND AX, BX(5)PUSHF2.指出指令MOV AX, 2010H 和MOV AX, DS:[2010H]的区别3.写出以下指令中内存操作数的所在地址(1)MOV AL, [BX+5](2)MOV [BP+5], 5(3)INC BYTE PTR[SI+3](4)MOV DL, ES:[BX+DI](5)MOV BX, [BX+SI+2]4.判断下列指令书写是否正确(1)MOV DS, 0100H (错)(2)MOV AL, BX (错)(3)MOV BL, F5H (错)(4)MOV DX, 2000H (对)(5)INC [BX] (对)(6)MOV 5, AL (错)(7)MOV [BX], [SI] (错)5.若SP=2000H, AX=3355H, BX=4466H, 试指出执⾏下列指令后有关寄存器的值:(1)PUSH AX;执⾏后AX=? SP=? (AX=3355H SP=1FFEH)(2)PUSH AXPUSH BXPOP DX;执⾏后AX=? DX=? SP=?(AX=3355H DX=4466H SP=1FFEH)6.假设想从100中减去AL中的内容,⽤SUB 100, AL是否正确?如果不对,应⽤什么⽅法?7.有如下程序,当AL某位为何值时,可将程序转⾄AGIN2语句。

汇编语言课后习题答案

2.1已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12345678H,[21200H]~[21203H]依次存放2A4C B765H,说明下列每条指令执行完后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)mov20h,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=12h10011;10001001+10001001100010010add al,9dh;AL=0afh00101;00010010+1001110110101111cmp al,0bch;AL=0afh10101;10101111-10111100*01000011sub al,al;AL=00h01001dec al;AL=0ffh00101 ;00000000-00000001*11111111inc al;AL=00h01001 ;11111111+00000001*11111111必考:〔习题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的状态。

汇编语言参考答案.pdf

汇编参考答案注:题目旁的数字为课本页码1.处理器的性能指标。

1处理器的性能用字长、时钟频率、集成度等基本的技术参数来衡量。

字长:表明处理器每个时间单位可以处理的二进制数据位数,如一次运算、传输的位数。

时钟频率表明处理器的处理速度,反映了处理器的基本时间单位。

集成度表明处理器的生产工艺水平,通常用芯片上集成的晶体管数量来表达。

2.冯诺依曼的基本思想。

10(1)采用二进制形式表示数据和指令,指令有操作码和地址码组成(2)将程序和数据存放在存储器中,计算机在工作时从存储器取出指令加以执行,自动完成计算任务。

(3)指令的执行时顺序的,即一般按照指令在存储器中的存放的顺序执行,程序分支由转移指令实现。

(4)计算机有存储器运算器,控制器。

输入设备和输出设备五大基本部件组成,并规定了5部分的基本功能。

3.有三种系统总线是哪些13或154地址总线、数据总线、控制总线4.计算机系统的层次结构17184(1)第0层数字电路层(2)第1层控制层(3)第2层机器语言层(4)第3层操作系统层(5)第4层汇编语言层(6)第5层高级语言层(7)第6层用户层5.软件与硬件的等价性原理19软件与硬件的等价性原理是指软硬件在逻辑功能上的等价,并不意味着性能和成本的等价。

6.区别如下概念:助记符,汇编语言,汇编语言程序和汇编程序助记符:帮助记忆指令的符号,反应指令的功能。

处理器指令助记符可以是任何一条处理器指令,表示一种处理器操作。

44汇编语言:为了便于理解与记忆,将机器指令用助记符代替形成的一种语言18汇编语言程序:用汇编语言书写的程序就是汇编语言程序,或称汇编语言源程序。

汇编程序:汇编语言程序翻译成机器语言的过程称为汇编,完成汇编工作的程序就是汇编程序(Assembler)。

187.移位指令SHL SAL SHR SAR ROL ROR RCR93SHL(Shift Left):逻辑左移SHR(Shift Right):逻辑右移SAL(Shift Arithmetic Left):算术左移SAR:算术右移ROL(Rotate Left):循环左移ROR(Rotate Right):循环右移RCR(Rotate through Carry Right):带进位循环右移8.什么是存储器芯片的全译码和部分译码?各有什么特点194全译码:使用全部系统地址总线进行译码。

汇编语言习题答案 第三版

汇编语言习题答案第三版汇编语言习题答案第三版汇编语言作为计算机科学中的一门重要课程,对于理解计算机底层原理和编程语言有着重要的意义。

而在学习汇编语言的过程中,习题的完成是提高对知识掌握程度的重要途径。

本文将为读者提供一些汇编语言习题的解答,希望能够帮助读者更好地理解和应用汇编语言。

1. 以下是一段汇编代码,请问这段代码的功能是什么?```MOV AX, 5MOV BX, 3ADD AX, BX```答案:这段代码的功能是将寄存器AX中的值设置为5,将寄存器BX中的值设置为3,然后将AX和BX的值相加,结果保存在AX中。

2. 以下是一段汇编代码,请问这段代码的功能是什么?```MOV AL, 0MOV CX, 10LOOP_START:ADD AL, 1LOOP LOOP_START```设置为10。

然后通过循环,将AL的值逐步增加1,循环执行10次。

3. 以下是一段汇编代码,请问这段代码的功能是什么?```MOV AX, 10CMP AX, 5JG LABEL1JMP LABEL2LABEL1:ADD AX, 5LABEL2:SUB AX, 3```答案:这段代码的功能是将寄存器AX中的值设置为10,然后与5进行比较。

如果AX的值大于5,则跳转到LABEL1处执行,否则跳转到LABEL2处执行。

在LABEL1处,将AX的值增加5;在LABEL2处,将AX的值减去3。

4. 以下是一段汇编代码,请问这段代码的功能是什么?```MOV AX, 5MOV BX, 3MUL BX```置为3。

然后使用MUL指令,将AX的值与BX的值相乘,结果保存在AX中。

5. 以下是一段汇编代码,请问这段代码的功能是什么?```MOV AX, 10MOV BX, 2DIV BX```答案:这段代码的功能是将寄存器AX中的值设置为10,将寄存器BX中的值设置为2。

然后使用DIV指令,将AX的值除以BX的值,商保存在AX中,余数保存在DX中。

《汇编语言程序设计》第十章串操作指令与程序设计.


例10-4 REP MOVSB串操作指令应用实例
程序说明:与例 10-1 、 10-2 、 10-3 比较,本例更简单。 MOVSB ,再加上一个重复前缀,那么整个循环的重复部 分、修改部分、控制部分用一条指令即可: REP MOVSB。

南开大学 朱耀庭
2. 串操作指令概述

南开大学 朱耀庭
2. 串操作指令概述
无论是串传送指令 MOVS,串比较指令 CMPS,还是串搜 索指令 SCANS ,每执行一次串操作指令,其源串指针 SI 、 目标串指针DI都自动修改指向下一个操作的字节或字。 如果是字节操作,其增量为正负 1;如果是字操作则增量 为正负 2。增量为正,表示下一次操作指向高地址,称作 正向串操作,由标志寄存器的 DF=0 决定,可以通过指令 CLD 置 DF=0 ;增量为负,表示下一次操作指向低地址, 称作负向串操作,由标志寄存器的 DF=1 决定,可以通过 指令STD置DF=1。
例10-2 LODSB和STOSB串操作指令应用实例
程序说明:试比较例10-1 与例10-2黑体字部分的不 同
www.ຫໍສະໝຸດ
南开大学 朱耀庭
2. 串操作指令概述
例10-3 MOVSB串操作指令应用实例 题目:功能同例10-1 设计思路:S1作为源串,S2作为目标串,用MOVSB实现 串数据传送
南开大学 朱耀庭
2. 串操作指令概述
利用这些指令最多可以处理64K字节长的字符串。 字符串指令可以对字符串的某个元素(字节或字)进行传送、 比较、搜索,以及将字符串元素取至累加器(AL、AX或 EAX)中和将累加器(AL、AX或EAX)中的值存入字符串(存 储器字节、字或双字)。 字符串指令可以有一个源操作数(源串)、一个目的操作数 (目标串)或二者均有。 源串是指由DS:SI指向的字节或字符串 目标串是指由ES:DI指向的字节或字符串
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档