汇编语言第4章练习课.

合集下载

第4章 汇编语言程序设计习题解答

第4章 汇编语言程序设计习题解答

习题4.10 习题
• 下面程序段是实现从键盘输入十个一位 进制数后 下面程序段是实现从键盘输入十个一位10进制数后 累加,最后累加和以非压缩BCD码形式存放在 码形式存放在AH 累加,最后累加和以非压缩 码形式存放在 高位) 低位) (高位)和AL (低位)中。试把程序段中所空缺 的指令填上。 的指令填上。 XOR BX ,BX ;BX清零 清零 MOV CX,10 ; 传送数据长度 LOP:MOV AH,01H;中断 中断INT 21H的01H号调用 中断 的 号调用 INT 21H ;中断调用 中断调用P172, 键入值送入 中 键入值送入AL中 中断调用 MOV AH,BH ;将BH的内容传 的内容传AH 将 的内容传 ADD AL,BL ;BL与AL的值相加 结果在 中 的值相加,结果在 与 的值相加 结果在AL中 AAA ;非压缩 非压缩BCD码加法调整 非压缩 码加法调整 MOV BX,AX ;累加结果送 累加结果送BX 累加结果送 LOOP LOP ;CX-1→CX,判断 判断CX≠0,下列要求在数据段中依次书写各数据定义语句: 试按下列要求在数据段中依次书写各数据定义语句: 为首字节的连续存储单元中存放20H个重 (1)以DA1为首字节的连续存储单元中存放 ) 为首字节的连续存储单元中存放 个重 复的数据序列: , , 个 ,一个7。 复的数据序列:2,3,10个4,一个 。 为字符串变量, (2)DA2为字符串变量,用字变量(DW)设置一字 ) 为字符串变量 用字变量( ) 符串; 符串;‘STUDENTS’(按次顺序存放在各单元中)。 (按次顺序存放在各单元中)。 赋值以DA1为首地址 (3)用等值语句给符号 )用等值语句给符号COUNT赋值以 赋值以 为首地址 的数据区共占有的字节数, 的数据区共占有的字节数,此等值语句必须放在最 后一语句。 后一语句。 解答: 解答: ),7) (1)DA1 DB 20H DUP(2,3,10 DUP(4), ) ) ( , , ( ), (2)DA2 DW ‘TS’, ‘DU’,‘NE’,’ST’, ) , , , , (3) COUNT EQU DA2- DA1 )

汇编语言程序设计(第四版)第4章【课后答案】

汇编语言程序设计(第四版)第4章【课后答案】

汇编语言程序设计(第四版)第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~4章【课后答案】

汇编语言程序设计(第四版)第1~4章【课后答案】

汇编语言程序设计第四版【课后习题答案】第1章汇编语言基础知识〔习题1.1〕简述计算机系统的硬件组成及各部分作用。

〔解答〕CPU:包括运算器、控制器和寄存器组。

运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为处理单元提供所需要的数据。

存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。

外部设备:实现人机交换和机间的通信。

〔习题1.2〕明确下列概念或符号:主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB。

〔解答〕主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。

辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速度慢。

RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电后能保存信息。

存储器由大量存储单元组成。

为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常称做I/O端口。

KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。

〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序?〔解答〕用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编译通过的程序就是目标程序。

〔习题1.4〕汇编语言与高级语言相比有什么优缺点?〔解答〕汇编语言与高级语言相比的优点:由于汇编语言本质就是机器语言,它可以直接地、有效地控制计算机硬件,因而容易产生运行速度快,指令序列短小的高效目标程序,可以直接控制计算机硬件部件,可以编写在“时间”和“空间”两方面最有效的程序。

汇编语言程序设计 程学先 汇编第2、3,4章作业参考答案

汇编语言程序设计 程学先 汇编第2、3,4章作业参考答案

2.16编写程序段,使(AH)与( AL)中的内容互换。

解1MOV BL,ALMOV AL,AH.MOV AH,BL解2XCHG AH,AL2.17编写程序段,使(BL)中高4位与低4位内容互换。

解1MOV CL,4MOV BH,0SHL BX,CLADD BL,BH解2MOV CL,4ROL BL,CL2.18编写程序段,实现当(DL)是奇数时使(AL)=31H,否则使(AL)=30H。

SHR DL,1MOV AL,0RCL AL,1ADD AL,30H2.20设寄存器AX中存放1234H,BX寄存器中存放1,执行DIV BL指令后,会发生什么现象?为什么?溢出,商超过8位,在ALxx存放不下商。

2.21设DX寄存器中存放值为0,AX中存放1234H,BX中存放1,执行DIV BX后,是否会出现与2.20相同现象?为什么?不会,因为是16位除法,商未超过16位2.22一字数据压栈时堆栈指针如何改变?弹出一字数据时堆栈指针如何改变?压栈时堆栈指针减2;弹出一字数据时堆栈指针加22.23已知(SP)=2088H,(AX)=1A89H,(BX)=90CDH。

依次执行以下三条指令后,画图说明堆栈中数据情况,及SP、AX、BX中数据。

PUSH AXPUSH BXPOPAX(SP)=2086H,(AX)=90CDH,(BX)=90CDH。

*2.25编写程序段求8!(8的阶乘)。

MOV AX,8MOV BX,7NEXT:DX,0DEC BXJNZ NEXT2.27假设(AX)=07EH,变量BUFFER中存放的内容为B5H,求下列各条指令单独执行后的结果。

(1)ANDAX,BUFFER34H(2)XORAX,BUFFERCBH(3)ORAX,BUFFER0FFH(4)ANDAX,00(5)XORAX,OFFH81H(6)TESTAX,8000H相与结果为0时。

AX为正,值不变*2.28编写程序段,判断(AL)中的有符号数是正数还是负数,正数在CL中写0,否则写1。

第四章汇编语言程序设计题库

第四章汇编语言程序设计题库

第四章汇编语言程序设计题库第四章汇编语言程序设计练习题一、单项选择题(共40题)1、关于指令MOV [BX],AX,以下叙述正确的是:A、目的操作数是寄存器操作数B、源操作数是内存操作数C、目的操作数是内存操作数D、源操作数是立即操作数2、执行下列程序,设(SS)=2000H,执行后(SP)=?MOV SP,2000HMOV AX,1234HPUSH AXA.21FFEH B.20000H C.22000H D.22002H3、运算型指令的寻址和转移型指令的寻址,其不同点在于A.前者取操作数,后者决定程序的转移地址B.后者取操作数,前者决定程序的转移地址C.两者都是取操作数D.两者都是决定程序的转移地址4、MOV ( ),300A、WORD PTR [DX]B、BYTE PTR [BX]C、WORD PTR [BP]D、AL5、汇编语言程序代码必须位于代码段中,形成代码段物理地址的寄存器对是A.SS: SP B.CS: IP C. DS: BX D. CS: BX6、若定义DAT DW 'A',则(DAT)和(DAT+1)两个相邻的内存中存放的数据是()A.0041H B.4100HC.××41H D.4l××H7、执行下面的程序段后,(AX)=()TAB DW 1,2,3,4,5,6ENTRY EQU 3MOV BX,OFFSET TABADD BX,ENTRTMOV AX,[BX]A.0003H B.0300HC.0400H D.0004H8、下面表示段定义结束的命令是()A.ENDP B.ENDS C. ENDM D.END9、设AL、BL,中都是带符号数,当AL<BL时转至NEXT处,在CMP AL,BL指令后应选用正确的条件转移指令是()A.JBE B.JLC.JNA D.JNLE10、指令LOOPZ它的循环执行条件是( )A.CX不等于0且ZF=0 B.CX不等于0或ZF=0C.CX不等于0且ZF=1 D.CX不等于0或ZF=111、执行下列指令后,SP寄存器的值是()MOV SP,1000HPUSH AXA.0FFEH B.0FFFHC.1001H D.1002H12、完成将有符号数BX的内容除以2的正确指令是()A.SHR BX,1 B.SAR BX,1C.ROR BX.1 D.RCR BX,113、汇编语言源程序经汇编后不能直接生成()A.OBJ文件B.LST文件C.EXE文件D.CRF文件14、执行下列程序(AL)=( )。

汇编语言程序设计课后习题答案

汇编语言程序设计课后习题答案

第四章汇编语言程序设计习题答案一、单项选择题1.C2.B3.C4.C5.C6.A7.A8.C9.B10. D11.B12.B13.D14.C15.C16.A17.D18.D19.A20. C21.B22.D23.D24. A二、多项选择题1.ABCEF2.ACE3.AC4.ABCD三、填空题1.PARA2.1,2,60,120, 13.SEGMENT,ENDS4.12005.段内转移,段间转移6.AH7.过程,PROC,RET,NEAR,FAR8.LEA BX,BUF9.1, 410..0504H11.ASM,EXE12.立即寻址,直接寻址四、判断题××××V V V××V五、程序分析题1. 32.12H,3412H3.46H,73H4.(1) 从目的串中查找是否包含字符‘0’,若找到则停止,否则继续重复搜索。

(2) ZF=1, 说明已找到字符ZF=0, 说明未找到字符CX 0,说明中途已找到字符退出CX=0,且ZF=0说明串中无字符‘0’5.1, 0, 3, 2, 5, 4, 7, 6, 9, 86.87H,81H7.44AAH,44D5H8.DEC CX,JNC,JZ9.JNZ L210.ADC DX,0,CLC11.AAS12.STOSB13.1,3,1,2, 214.(2000H)=39H (2001H)=00H将(2000H),(2001H)两相邻单元中存放的未组合型BCD码压缩成组合型BCD码,并存入(2000H)单元,0 (2001H)15.A)2345H,6780HB)将DX、AX中存放的32位二进制数向左移动4位16.0 ,1009H0对数据段内1000H~1008H单元置数,依次送入1,2,4,8,16,32,64,128,0共九个17.20H,10,T18.①$-BUF②ASSUME CS:CODE,DS:DATA③MOV DS,AXMOV AX,0⑤JLE NEXT⑥JNZ NEXT⑦JNZ LOPA⑧BEGIN19.不相同,第一个数据段72H在前,04在后,后一个04H在前,72H在后。

第04章 汇编语言程序设计 39页 0.2M PPT版

第04章 汇编语言程序设计 39页 0.2M PPT版

MOV AL,10100000B OR 00000101B ;(AL)←10100101B
例4-4 关系运算符的应用
MOV AX,5 EQ 101B ;(AX)←0FFFFH
MOV BH,10H GT 16 ;(BH)←0
例4-5 数值返回运算符的应用
K1 DB 30H,31H,32H
K2 DW 4041H,4043H
(4)STACK
(5)MEMORY
(6)AT表达式
4. 类别名
返回
4.2.4 段寻址伪指令
格式:
ASSUME 段寄存器名:段名,段寄存器名:段名,……
例4-15 求从NUM开始的12个无符号字节数的和,结果放在SUM字单元中。
DATA SEGMENT NUM DB 95H,83H,36H,2DH DB 33H,22H,1AH,34H DB 62H,45H,75H,49H SUM DW ?
例4-13
STR1 DB ‘COMPUTER’ ;定义一个字符串,字符串的首地址为STR1 STR2 DW ‘AA’,‘BC’,‘DE’ ;给两个字符组成的字符串分配两个字节存储单元 DATA DW ?,?,? ;为DATA预留6个存储单元
例4-14
DATA1 DB 20 DUP(?) ;为变量DATA1分配20个字节的空间,初值为任意值 DATA2 DW ? ;为变量DATA2分配2个字节的空间,初值为任意值 DATA3 DB 20 DUP(30H) ;为变量DATA3分配20个字节的空间,初值均为30H
K3 DW 20H DUP(0)
K4 DD 50515253H
MOV AL,TYPE K1 ;等效于MOV AL,1
MOV AH,TYPE K2 ;等效于MOV AH,2

汇编语言第四章答案

汇编语言第四章答案
(4) MOV AX, WORD_OP1[DX];错,DX不能用于存储器寻址
(5) MOV SADATA_WORD [BX][SI]
(7) MOV [BX][SI], 2;错,[BX][SI]未指出数据类型
(8) MOV AX, WORD_OP1+WORD_OP2
STACK_SEG SEGMENT PARA STACK ‘STACK’
DW 100H DUP (?)
TOS LABEL WORD
STACK_SEG ENDS;以上定义堆栈段
;----------------------------------------------------------------
(7) FLD7B为零件名(ASCII码)及其数量(十进制数)的表格:
PART1 20
PART2 50
PART3 14
(8) FLD1W为十六进制数字变量:FFF0;
(9) FLD2W为二进制数的字变量:01011001;
(10) FLD3W为(7)零件表的地址变量;
(11) FLD4W为包括5个十进制数的字变量:5,6,7,8,9;
(5) MOV CX, LENGTH TABLEB;(CX)=0001H
答:见注释。
4.15指出下列伪操作表达方式的错误,并改正之。
(1) DATA_SEG SEG;DATA_SEG SEGMENT(伪操作错)
(2) SEGMENT ‘CODE’;SEGNAME SEGMENT ‘CODE’(缺少段名字)
4.9有符号定义语句如下:
BUFF DB 1, 2, 3, ‘123’
EBUFF DB 0
L EQU EBUFF - BUFF
问L的值是多少?

汇编课件第4章

汇编课件第4章

通常,段中的数据或指令是按顺序一个接着一个存放的。ORG可以控制数据或代码的偏 移地址,形式为: ORG 功能: 设置其后数据或代码的起始偏移地址为n,设常数表达式的值为n。也就是将地址计 数器的值置为n。 【例】 已知下列数据段,指出变量V1、V2的偏移地址。 data v1 v2 data segment org dw org db ends 200h 1,2 $ + 10h ? ; v1的偏移地址为200h ; 跳过10h个字节 ; v2的偏移地址为214h 常数表达式
指出CSEG、DSEG、ESEG和SSEG分别为代码段、数据段、附加段和堆栈段。 通常,访问的数据在DS所指的数据段或SS所指的堆栈段,而所有的代码引用(如转 移等)相对于当前代码段。那么,汇编器如何知道哪个段是代码段、哪个是数据段呢? 实际上,数据段之所以成为数据段,是由于DS指向它。由于程序运行时可以改变DS 的值,使得任何段都可以成为数据段。因此,当程序定义一个段后,需要告诉汇编器该 段的段地址在哪个段寄存器中。ASSUME就提供这种信息。
4.3 基本伪指令
4.变量定义伪指令
(4)MASM是强类型的。变量在定义后,其类型便被确定,使用时要注意类型匹配。例如: OP1 OP2 DB DW ?, ? ?, ?
下列两条指令执行不同类型的操作: MOV MOV OP1 + 1, 0 OP2 + 2, 0 ; 字节操作指令,将0作为1个字节送到地址OP1 + 1 ; 字操作指令,将0作为1个字送到地址OP2 + 2
4.3 基本伪指令
4.变量定义伪指令
说明: (1)变量可以定义在任何段(包括代码段),但一般定义在数据段。 (2)用DW/DD/DQ/DF/DT定义的数据在内存按“低字节在低地址”的方式存放。例 如: S1 S2 DB DW 'AB' 'AB' ; 等价于 S1 DB 41H, 42H ; 等价于 S2 DW 4142H

汇编语言程序设计(第四版)第4章[课后答案]

汇编语言程序设计(第四版)第4章[课后答案]

汇编语言程序设计(第四版)第4章[课后答案]汇编语言程序设计第四版【课后习题答案】--暄[|第4章基本汇编语言程序设计〔习题4.1〕例题4.2如果要求算术右移8位,如何修改程序。

〔解答〕思路:首先由最低位字节向次低位字节传输……次低位字节向最高位字节传输(共7次);再被判最低位字节符号位,如为0,送来00h至最低位字节;如为1,送来ffh至最低位字节。

传输可以参照例题4.2,不过需从第一号字节送来第零号字节,……最低位字节向次低位字节传输;也可以用循环去顺利完成:.modelsmall.stack256.dataqvardq1234567887654321h.code.startupmovcx,7movsi,1again:moval,byteptrqvar[si]movbyteptrqvar[si-1],alincsiloopagaintestal,80hjzezzmovbl,0ffhjmpdoneezz:movbl,0done:movbyteptrqvar[7],bl.exit0end〔习题4.2〕例题4.2如果建议算术左移7十一位,如何用移位指令同时实现。

〔答疑〕思路:可设计外循环体为8个字节左移一次,方法是:最低位字节算术左移一次,次低位字节至最高位字节依次带cf位循环左移一次(内循环共8次),外循环体控制执行7次即可。

.modelsmall.stack256.dataqvardq1234567887654321h.code.startupmovdx,7;外循环次数movax,byteptrqvar[0];最高位字节送来axlpp:shlax,1;最低位字节左移一次,其d7移入cf位movsi,1movcx,7;内循环次数again:rclbyteptrqvar[si],1;高位字节依次左移p50incsiloopagaindecdxjnzlpp.exit0.end〔习题4.3〕将ax寄存器中的16位数连续4位分成一组,共4组,然后把这4组数分别放在al、bl、cl和dl寄存器中。

汇编语言课后习题及答案 按章节 超全面

汇编语言课后习题及答案 按章节 超全面

`00第一章课外练习题一、单项选择题:1.从键盘输入的字符,在计算机内存储的是它的(A)(A)二进制编码(B)四进制编码(C)八进制编码(D)十六进制编码2.6位无符号二进制数能表示的最大十进制数是(B)。

(A)64 (B)63 (C)32 (D)31 3.十进制数269变换为十六进制数是(C)。

(A)10B (B)10C (C)10D (D)10E 4.8位的微型计算机系统是以16位来表示地址,则该微机系统有(C)个地址空间。

(A)255 (B)65535 (C)65536 (D)1048576 5.8位有符号二进制数能表示的最大十进制数是(D)。

(A)256 (B)255 (C)128 (D)127 6.十六进制数88H,可表示成下面几种形式,请找出错误的表示(D)。

(A)无符号十进制数136 (B)带符号十进制数-120(C)压缩型BCD十进制数88 (D)8位二进制数-8的补码表示7.有一个数值152,它与十六进制数6A相等,那么该数值是(B)。

(A)二进制数(B)八进制数(C)十进制数(D)四进制数8.7位ASCII总共可表示(C)个符号。

(A)256 (B)127 (C)128 (D)255 9.4B的字长是(C)。

(A)8位(B)16位(C)32位(D)64位二、判断题(判断每题正误,对的在题后括号内划“√”,错的划“×”)1.字节通常用英文单词“Bit”来表示(×)。

2.目前广泛使用的Pentium计算机其字长为5个字节(×)。

3.存储器中将8个相邻的二进制位作为一个单位,这种单位称为字节(√)。

4.微型计算机的字长并不一定是字节的整数倍(×)。

三、填空题1.8位有/无符号整数的表示范围写成16进制形式为(80~~7F)/(00~~FF)。

2.己知:计算机中有一个“01100001”编码,如果把它看作是无符号数,它是十进制什么数(97);如果认为它是BCD,则表示(01100001)BCD;认为它是某个ASCII,则代表(a)字符。

汇编语言程序设计教程第4版课件第4章

汇编语言程序设计教程第4版课件第4章

2018/9/26
汇编语言程序设计教程
19
数据定义伪指令的伪操作
2018/9/26
汇编语言程序设计教程
20
数据定义伪指令的操作数
• • • • • • 常数或表达式: 问号(?) 地址表达式(适用DW和DD) 字符、字符串(适用于DB) 重复子句DUP(表达式) 用逗号分开的上述各项
2018/9/26
2018/9/26
汇编语言程序设计教程
12
运算符
• 属性运算符(或称操作符)有PTR、THIS、段操作符、SHORT、 HIGH和LOW计6种。 • 指针操作符PTR用于在本语句中取代一个已经定义过的存储器操作数 的属性,但并不永久改变该操作数的属性,仅在本语句中有效。 • 指定操作符THIS可以象PTR一样建立一个指定类型(BYTE、WORD 或 DWORD )的或指定距离( NEAR 、 FAR )的地址操作数,但该操 作数的段地址和偏移地址与下一个存储单元地址相同。 • 段操作符“:”用来定义段超越,跟在段寄存器名(DS、ES 、SS、 CS)之后,可以给一个存储器操作数指定一个段属性,而不管其原来 隐含的段是什么。 • 运算符SHORT指定一个标号的类型为 SHORT (短标号),即标号到 引用该标号之间的距离在-128~127个字节的范围内。 • 字节分离运算符HIGH和LOW分别得到一个数值或地址表达式的高位 和低位字节。
2018/9/26 汇编语言程序设计教程 4
标号
• 标号用来代表一条指令所在单元的地址, 在代码段中定义及使用。 • 标号放在语句的前面,并用冒号“:”与 操作项分开。标号不是每条指令所必需的, 它也可以用LABEL或EQU伪指令来定义。 • 此外它还可以作为过程名定义。 • 标号经常在转移指令或 CALL指令的操作数 字段出现,用以表示转向的目标地址。

第四章 汇编语言程序设计基础

第四章  汇编语言程序设计基础

4.2.2 分支程序的设计方法 ★条件控制 ★逻辑尺控制 ★地址跳转表控制
1. 条件控制——利用比较和条件转移指令实现分支,是最常用的 程序设计方法。
பைடு நூலகம்
例如,求解函数:
练习题2. 编写程序,比较两个字符串STRING1和STRING2所 含字符是否完全相同,若相同则显示“MATCH”,若不同则显示 “NO MATCH”。 答案: datarea segment string1 db ‘asfioa’ ;定义字符串STRING1 string2 db ‘xcviyoaf’ ;定义字符串STRING2 mess1 db ‘MATCH’,’$’ ;定义显示字串“MATCH” mess2 db ‘NO MATCH’,’$’ ;定义显示字串“NO MATCH” datarea ends prognam segment main proc far assume cs:prognam,ds:datarea start: push ds ;将ds:00入栈 sub ax,ax push ax mov ax,datarea ;装填数据段及附加段 mov ds,ax mov es,ax
程序流程图
mov ch,4 rotate: mov cl, 4 rol bx,cl mov al,bl and al,0fh add al,30h ;’0’-’9’ ASCII 30H-39H cmp al,3ah jl printit add al,7h ;’A’-’F’ ASCII 41H-46H printit: mov dl,al mov ah,2 int 21h dec ch jnz rotate
例4.3 将首地址为A的N字数组按照从小到大的次序整序(气 泡算法,多重循环) A dw 32,85,16,15, 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2005-10-8段DATA :
BUF 为10个字节的缓冲区,内容不定 BCDB 为十进制数字节变量:45 TAB为ASCII码的字节变量:5678 MESS为字符串变量:“computer” C为常量:100 D为字变量:TAB 的偏移地址。
2005-10-8
汇编语言程序设计

5.设数据段定义如下:
DATA SEGMENT A1 DB 10 DUP(?) A2 DW 1234H,5678H,341H A3 DW $-A2 A4 DW A2 A5 DB 7,3,2 DATA ENDS 请回答: 用一条指令将A2的偏移地址送BX 将字符‘A’的ASCII码送A1的第6个字 节 将A2的第3个字节的内容送AL 将A2的第3个单元开始的字内容送AX 用一条伪指令求出A1和A2所占字节数 2005-10-8 汇编语言程序设计 (设伪指令的变量为 C)

6.设数据段定义如下,判断各语句是 否正确,如有错误请改正。 DATA SEGMENTE A DB 123H B DW 23,45678H C DW ‘ABCD’ D DB 100 DUP(‘ABC’) E DB ($-D)/3 DATA END
汇编语言程序设计
2005-10-8

2005-10-8
汇编语言程序设计

3.设数据段定义如下:
DATA SEGMENT A DW 23,45 B DW ‘EF’ C = $+5 D DB 10 DUP(?) E EQU $-D F DW D DATA ENDS 请回答:数据段占用内存多少字节 C、E的值为多少? 执行“MOV AX,F”指令后,AX=____ 执行“MOV AL,BYTE PTR B”后 AL=____
画出数据段在存储中的分配示意图。 写出A,B,C,D,E的偏移地址或常数值
2005-10-8 汇编语言程序设计
2.设数据段定义如下: DATA SEGMENT A DW 23H B DB 34H C DD 5678H D DW 10 DUP (0) DATA ENDS 请回答:1 . 该数据段占用内存多少个字节 2 执行“MOV AL ,BYTE PTR C” 后, AL=_____________
汇编语言的语句:
语句格式
汇 编 语 言 程 序 格 式
指令语句 : 伪指令
传送指令
数据定义 符号定义 段定义
过程定义
上机过程 P51
2005-10-8 汇编语言程序设计
练习

1.数据段定义如下: DATA SEGMENT A DB 2 B DW 24H C EQU $-A D EQU $+4 E DW B DATA ENDS
相关文档
最新文档