汇编实验2讲解
实验二拆字、拼字程序

班级:2学号:姓名:成绩:实验二拆字、拼字程序一实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。
二实验内容1.把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。
ORG 0660HSE02: MOV DPTR,#2000HMOVX A,@DPTRMOV B,A;(2000)→A→BSW AP A;交换ANL A,#0FH ;屏敝高位INC DPTRMOVX @DPTR,A;送2001HINC DPTRMOV A,BANL A,#0FH ;(2000)内容屏敝高位MOVX @DPTR,A;送2002HSJMP $END2. 把2000H、2001H的低位分别送入2002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成—个字节ORG 0680HSE03: MOV DPTR,#2000HMOVX A,@DPTRANL A,#0FH ;(2000H)内容屏敝高位SW AP A;交换MOV B,A;保存INC DPTRMOVX A,@DPTR ;(2001H)内容送AANL A,#0FH ;屏敝高位ORL A,B ;或INC DPTRMOVX @DPTR,A;送2002HSJMP $END三实验步骤编译、装载程序,以连续或单步方式运行程序,检查2000~20FFH中执行程序前后的变化。
四思考1.将2000的高低位分别送入3000H、3001H的高位, 3000H、3001H低位清零;ORG 0660HSE02: MOV DPTR,#2000HMOVX A,@DPTRMOV B,A;(2000)→A→BSW AP A;交换ANL A,#0FH ;MOV DPTR,#3000HMOVX @DPTR,A;送3000HINC DPTRMOV A,BANL A,#0FHMOVX @DPTR,A;送3001HEND2.把片内20H,21H的高位拼在一起送到片内30H单元。
十年(2012-2021)高考物理真题汇编专题06 力学实验2—验证牛顿第二定律及动摩擦因数(解析)

专题06力学实验2—验证牛顿第二定律及动摩擦因数的求解(2012-2021)目录题型一、摩擦因数的求解 (1)题型二、验证牛顿第二定律及其拓展类问题 (5)题型三、实验器材的读数及验证牛顿第二定律 (7)题型一、摩擦因数的求解1.(2021全国甲)为测量小铜块与瓷砖表面间的动摩擦因数,一同学将贴有标尺的瓷砖的一端放在水平桌面上,形成一倾角为α的斜面(已知sinα=0.34,cosα=0.94),小铜块可在斜面上加速下滑,如图所示。
该同学用手机拍摄小铜块的下滑过程,然后解析视频记录的图像,获得5个连续相等时间间隔(每个时间间隔∆T=0.20s)内小铜块沿斜面下滑的距离s i(i=1,2,3,4,5),如下表所示。
s1s2s3s4s55.87cm7.58cm9.31cm11.02cm12.74cm由表中数据可得,小铜块沿斜面下滑的加速度大小为___________m/s2,小铜块与瓷砖表面间的动摩擦因数为___________。
(结果均保留2位有效数字,重力加速度大小取9.80m/s2)【答案】(1).0.43(2).0.32【解析】(1)根据逐差法有()()()2254212222(12.7411.02)10(7.58 5.87)10m/s 0.43m/s 60.206s s s s a T --+-++⨯-+⨯==≈⨯∆(2)对小铜块受力分析根据牛顿第二定律有sin cos mg mg maαμα-=代入数据解得0.32μ≈2.(2020年北京).某同学利用图甲所示装置研究摩擦力的变化情况。
实验台上固定一个力传感器,传感器用棉线拉住物块,物块放置在粗糙的长木板上。
水平向左拉木板,传感器记录的F t -图像如图乙所示。
下列说法正确的是()A .实验中必须让木板保持匀速运动B.图乙中曲线就是摩擦力随时间的变化曲线C.最大静摩擦力与滑动摩擦力之比约为10:7D.只用图乙中数据可得出物块与木板间的动摩擦因数【答案】C【解析】AB .为了能研究摩擦力随时间的变化曲线,故物块一直要处于静止状态,则向左的摩擦力一直与向右轻绳的拉力平衡,图乙是向右轻绳的拉力随时间变化曲线,故图乙也可以反映摩擦力随时间变化的曲线,由图可乙知向右轻绳的拉力先增大后减小,最后趋于不变,故物块先受静摩擦力作用后受滑动摩擦力作用,所以不需要让木板保持匀速运动,故AB 错误;C .由图可知,最大静摩擦力约为10N ,滑动摩擦力约为7N ,故最大静摩擦力与滑动摩擦力之比约为10:7,故C 正确;D .结合滑动摩擦力的公式:f N F F μ=,N F mg=可知,由于不知道物块的重力,故无法求物块与木板间的动摩擦因数,故D 错误。
北京理工大学汇编实验二报告

北京理工大学汇编实验二报告本科实验报告实验名称:算术运算类操作实验课程名称:CPU与汇编实验实验时间:2015.10.29 任课教师:王耀威实验地点:10-102实验教师:潘丽敏实验类型:□原理验证■综合设计□自主创新学生姓名:王晓玥学号/班级:1120131332/05111311 组号:学院:信息与电子学院同组搭档:专业:信息工程成绩:一、实验要求和目的1、了解汇编语言中的二进制、十六进制、十进制、BCD 码的表示形式;2、掌握各类运算类指令对各状态标志位的影响及测试方法;3、熟悉汇编语言二进制多字节加减法基本指令的使用方法;4、熟悉无符号数和有符号数乘法和除法指令的使用;5、掌握符号位扩展指令的使用。
6、掌握 BCD 码调整指令的使用方法二、软硬件环境1、硬件环境:计算机系统 windows;2、软件环境:装有 MASM、DEBUG、LINK、等应用程序。
三、实验涉及的主要知识1、加减法处理指令主要有加法指令 ADD,带进位加法 ADC,减法指令 SUB,带进位减法指令 SBB。
2.乘除法指令和符号位扩展指令主要有无符号数乘法指令MUL,带符号数乘法指令IMUL,无符号数除法指令DIV,带符号数除法指令 IDIV,以及符号位从字节扩展到字的指令 CBW 和从字扩展到双字的指令 CWD。
3.BCD 码的调整指令主要有非压缩的BCD 码加法调整指令DAA,压缩的 BCD 码减法调整指令 DAS,非压缩的 BCD 码加法调整指令 AAA,非压缩的 BCD 码减法调整指令 AAS,乘法的非压缩 BCD码调整指令 AAM,除法的非压缩 BCD 码调整指令 AAD。
8088/8086 指令系统提供了实现加、减、乘、除运算的上述基本指令,可对表 1 所示的数据类型进行数据运算。
表 1-2-1 数据类型数据运算表数制二进制BCD码带符号无符号组合非组合运算符+、-、×、÷+、-+、-、×、÷操作数字节、字、多精度字节(二位数字)字节(一位数字)四、实验内容与步骤1、对于两组无符号数,087H 和 034H,0C2H 和5FH,试编程求这两组数的和差积商,并考虑计算结果对标志寄存器中状态标志位的影响:(1)实验流程将一组操作数分别用ADD,SUB,MUL,DIV运算(2)实验代码:DATAS SEGMENTBUF1 DB 087HBUF2 DB 034HBUF3 DB 4 DUP(?);此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXMOV AX,0MOV SI,AX;两数相加MOV AL,BUF1MOV BL,BUF2ADD AL,BLMOV BUF3[SI],ALMOV AL,0MOV AL,0INC SIMOV BUF3[SI],AL;两数相减MOV AL,BUF1MOV BL,BUF2SUB AL,BLINC SIMOV BUF3[SI],ALMOV AL,0SBB AL,0INC SIMOV BUF3[SI],AL;两数相乘MOV AL,BUF1MOV BL,BUF2MUL BLINC SIMOV BUF3[SI],ALINC SIMOV BUF3[SI],AH;两数相除,AL中存放商,AH中存放余数MOV AX,0MOV AL,BUF1MOV BL,BUF2DIV BLINC SIMOV BUF3[SI],ALINC SIMOV BUF3[SI],AH;此处输入代码段代码MOV AH,4CHINT 21HCODES ENDSEND START(3)实验结果:1)第一组操作数87H,34H2)第二组操作数0C2H,5FH(4)计算结果计算状态标志表达式结果CF AF ZF OF SF PF 087H+034H 00BB 0 0 0 0 1 1 087H-034H 0053 0 0 0 1 0 1 087H*034H 1B6C 1 0 0 1 0 0 087H/084H 02(1F) 1 0 0 0 0 1 0C2H+05FH 0121 0 0 0 0 0 0 0C2H-O5FH 0063 0 0 1 0 0 1 0C2H*05FH 47FE 0 0 0 0 0 1 0C2H/05FH 02(04) 0 0 0 0 0 0(5)各运算对状态标志位的影响及其意义。
汇编实验报告2

实验二指令系统与程序结构一、实验目的1.掌握算术运算指令、逻辑指令、转移指令的应用方法2.掌握伪指令的使用方法。
3.掌握汇编程序的结构。
4.进一步熟悉debug的使用。
二、实验内容1.运行debug,使用a 100命令输入下列程序段:Mov cl,8Rol ax,clInt 3u 100反汇编;用r命令将本人班级学号(如0801)输入ax,用单步运行命令p执行,记录最后ax的值,分析该段程序完成的功能。
若输入ax的值是1234h,程序段执行后ax的值是多少。
用a 100 指令输入,u100 指令反汇编如图:用r指令写入ax的值,用p指令执行如图;由于p是单步执行命令,所以有的输入后要执行几次才出结果:如输入0801,执行两次p命令后,ax变为0108;从新打开一个DOS窗口,再次输入ax=1234;执行两次p指令后ax变为3412;总结,此程序功能为把ax中的数据循环左移8位;2.输入并调试下列程序汇编后如图·链接后如图成为可执行文件:1.用debug 装入该程序(注意记录数据):使用u命令反汇编该程序,观察;连续2次使用p命令,观察段寄存器的值的变化;观察到:DS从0C2D变为0C3D;其他段寄存器无变化;分别为:ES=0C2D,SS=0C41,CS=0C51,;2.用D ds:0观察数据段的数据;用g 1f 执行到断点,再观察ds:0的数据变化情况。
说明红色区代码的功能。
数据段的变化如图:用g 1f命令执行到断点,ds:0观察结果如图:分析红色代码区功能为换行并空两个字符,打印十个字符;用 g 33执行到断点处,再观察ds:0的数据变化情况。
说明蓝色区代码的功能。
将蓝色代码的循环结构改为使用条件转移指令实现。
分析:紧接着打印8个字符,代码改为: xor si,sixor di,dimov cx,8next:mov dl,str[si+10]mov buf0[di],dlinc siinc dijmp next结果如图:实验总结:汇编实验看似简单,其实很有内涵,如不认真操作并寻找规律,很难出结果。
实验2-用户登录验证程序的实现

P_MODULE: MOV AH,2 ;换行 MOV DL,0AH INT 21H
MOV AH,09H ;DOS显示提示字符串 MOV DX,OFFSET PASSWORD INT 21H
MOV BX,OFFSET BUF1 MOV CX,LLL MOV COUNT,3
五、支撑毕业要求指标点
目标 3.1 使学生了解微型计算机硬件结构和微型计算机工作原理,掌握 Intel X86 指令系统。使学 生能够将掌握的软硬件相关工程基础知识,用于分析微型计算机及应用领域的相关工程问题。 目标 3.2 使学生掌握汇编语言程序设计方法,具备汇编语言程序开发能力,能够根据实验方案,配置 实验环境、开展实验,进行数据分析与处理,综合实验结果以获得合理有效的结论。
U_MODULE: ;用户名模块
3
MOV AH,09H ;DOS显示字符串 MOV DX,OFFSET MESG1 ;取偏移地址 INT 21H
MOV AH,0AH ;等待从键盘输入的字符串(在屏幕上显示),并保存在缓 冲区
MOV DX,OFFSET BUF;DX=缓冲区首地址 INT 21H
;判断用户名是否正确 MOV DI,OFFSET BUF+2 MOV SI,OFFSET USER CLD
10
六、指导教师评语 (含学生能力达成度的评价)
成绩
批阅人
日期
评分项 评 遵守实验室规章制度
学习态度
算法思想准备情况
程序设计能力
分
解决问题能力
课题功能实现情况
算法设计合理性
算法效能评价
回答问题准确度
安徽工业大学汇编第二次实验报告

汇编语言实验报告姓名:黄国荣专业:软件工程班级:104班学号:109074254指导老师:陆勤内容一编写一个程序,显示AL寄存器中的两位16进制数1、思路:首先将要十六进制数放到AL寄存器中,将AL中的数据放到DL中,将DL中的数逻辑右移4位,判断是否大于9,如果小于9则加30H将其转化为对应数字的ascii码输出,如果大于9就加37H将其转化为对应字母的ascii码输出。
2、写出源程序清单。
CODE SEGMENTASSUME CS:CODESTART:MOV AL,3EHPUSH AXMOV DL,ALMOV CL,4SHR DL,CL ;逻辑右移CMP DL,9JBE NEXT1 ;如果小于9ADD DL,7NEXT1:ADD DL,30H ;转化为对应的ascii码,显示数字MOV AH,2INT 21HPOP AXMOV DL,ALAND DL,0FH;将低位取出CMP DL,9JBE NEXT2 ;如果小于9ADD DL,7NEXT2:ADD DL,30HMOV AH,2INT 21HMOV AH,4CHINT 21HCODE ENDSEND START内容二编写一个程序,判别键盘上输入的字符;若是1—9字符,则显示之;若为A—Z或a—z字符,均显示“c”;若为回车字符<CR>(其ascii码为0DH),则结束程序,若为其他字符则不显示,继续等待新的字符输入。
DATA SEGMENTMESSAGE DB 0AH,0DH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE ,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AH,1 ; 接收并回显INT 21HCMP AL,0DH ;如果输入的是回车键,退出JZ DONECMP AL,'0' ;判断是否在‘0~9’范围内JB NEXTCMP AL ,'9'JA CHARUPMOV DL,ALMOV AH,2 ;如果在‘0~9’范围内则输原样输出INT 21HLEA DX,MESSAGE ;换行MOV AH,9INT 21HJMP STARTCHARUP:CMP AL,41H ;与’A‘比较JB NEXTCMP AL,5AH ;与‘Z’比较JA CHRDNDISPC: ;显示‘C’MOV DL,'C'MOV AH,2INT 21HLEA DX,MESSAGE ;换行MOV AH,9INT 21HNEXT:JMP STARTCHRDN:CMP AL,61HJB NEXTCMP AL,7AHJA NEXTJMP DISPCDONE:MOV AH,4CHINT 21HCODE ENDSEND START补充实验统计不同成绩段学生的人数一、实验目的:1、掌握分支、循环、子程序调用、DOS功能调用等基本的程序结构。
(2020-2022)三年高考物理真题汇编(全国通用)专题16 实验(2)力学实验 Word版含解析

专题16 力学实验1、(2022·湖南卷·T11)小圆同学用橡皮筋、同种一元硬币、刻度尺、塑料袋、支架等,设计了如图(a)所示的实验装置,测量冰墩墩玩具的质量。
主要实验步骤如下:(1)查找资料,得知每枚硬币的质量为6.05g;(2)将硬币以5枚为一组逐次加入塑料袋,测量每次稳定后橡皮筋的长度l,记录数据如下表:序号 1 2 3 4 5硬币数量n/枚 5 10 15 20 25l10.51 12.02 13.54 15.05 16.56长度/cm(3)根据表中数据在图(b)上描点,绘制图线;______(4)取出全部硬币,把冰墩墩玩具放入塑料袋中,稳定后橡皮筋长度的示数如图(c)所示,此时橡皮筋的长度为______cm;(5)由上述数据计算得冰墩墩玩具的质量为______g(计算结果保留3位有效数字)。
【答案】①. 见解析②. 15.35 ③. 127【解析】(3)[1]根据表格标点连线如图(4)[2]由图可知刻度尺的分度值为1mm ,故读数15.35cm l =; (5)[3]设橡皮筋的劲度系数为k ,原长为x 0,则()110n mg k l x =- ()250n mg k l x =-设冰墩墩的质量为m 1,则有()10m g k l x =-联立各式代入数据可得142.69g m ≈。
2、(2022·广东卷·T11)某实验小组为测量小球从某一高度释放,与某种橡胶材料碰撞导致的机械能损失,设计了如图(a )所示的装置,实验过程如下:(1)让小球从某一高度由静止释放,与水平放置的橡胶材料碰撞后竖直反弹。
调节光电门位置,使小球从光电门正上方释放后,在下落和反弹过程中均可通过光电门。
(2)用螺旋测微器测量小球的直径,示数如图(b )所示,小球直径d =__________mm 。
(3)测量时,应__________(选填“A ”或“B ”,其中A 为“先释放小球,后接通数字计时器”,B 为“先接通数字计时器,后释放小球”)。
汇编语言实验二查找匹配字符串

汇编语言实验二查找匹配字符串一、目的查找匹配字符串SEARCH二、实验内容程序接收用户键入的一个关键字以及一个句子。
如果句子中不包含关键字则显示‘NO match!’;如果句子中包含关键字则显示‘MATCH’,且把该字在句子中的位置用十六进制数显示出来。
流程图N YY Y输入关键字结束关键字长度=0输入句子句子长度<关键字长度Y保存关键字长度到cx ,cx 入栈,保存总循环次数(句子长度-关键字长度+1)到al ,将句子的首地址放进bx(作为基址寄存器) si=di=0(变址寄存器)开始比较[bx+di]与[si]是否相等si+1,di+1,cx-1(同时指向下一个字符)YN bx+1(句子指向下一个字符) cx 出栈,再入栈,si,di 清零,al-1 cx 是否为0N 匹配完成,调用子程序输出al 是否为0 不匹配,输出三、设计和编码DATA SEGMENTmess1 DB'Enter keyword:','$'mess2 DB'Enter Sentence:','$'mess3 DB'Match at location:','$' mess4 DB'NOT MATCH.',13,10,'$' mess5 DB'H if the sentence',13,10,'$'change DB 13,10,'$'stoknin1 label bytemax1 db 10act1 db?stokn1 db 10 dup(?)stoknin2 label bytemax2 db 50act2 db?stokn2 db 50 dup(?)DATA ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODE SEGMENT;*************************************代码段main proc farassume cs:code,ds:data,es:dataSTART:push dssub AX,AXsub BX,BXsub DI,DIsub SI,SIpush AX ;为返回dos并清空后面要用到的寄存器MOV AX,DATAMOV DS,AXLEA DX,mess1MOV ah,09INT 21h ;输出Enter keywordLEA DX,stoknin1MOV ah,0ah ;用21号中段的0ah号功能获取关键字INT 21hcmp act1,0je exit ;如果为空直接退出程序a10:;********************************输入Sentence并判断LEA DX,changeMOV ah,09INT 21h ;输出回程,换行LEA DX,mess2MOV ah,09INT 21h ;输出Enter Sentence:LEA DX,stoknin2MOV ah,0ahINT 21h ;用21号中段的0ah号功能获取句子MOV AL,act1CBWMOV CX,AX ;保存关键字长度到cxPUSH CX ;cx入栈MOV AL,act2cmp AL,0je a50 ;保存句子长度到al,若句子为空则跳转显示not match SUB AL,act1js a50 ;若句子长度小于关键字长度,则跳转显示not match INC ALCBWLEA BX,stokn2 ;将句子的首地址放进BXMOV DI,0MOV SI,0a20:;****************************************比较,内循环MOV AH,[BX+DI]CMP AH,stokn1[SI] ;遇见字符不相等就跳转到a30jne a30INC DIINC SIDEC CX ;没遇到一个相等的字符,cx-1,cx不为0则比较下一个字符,当cx为0是说明关键字比较完CMP CX,0je a40jmp a20a30:;*****************************************外循环,BX+1,清空si,di继续内循环比较INC BXDEC ALcmp AL,0je a50MOV DI,0MOV SI,0POP CXpush CXjmp a20a40:;*****************************************match,将bx减去句子的首地址加一得到关键字所在位置,调用二进制转十六进制子函数将位置输出SUB BX,offset stokn2INC BXLEA DX,changeMOV ah,09INT 21hLEA DX,mess3MOV ah,09INT 21hCALL btohLEA DX,mess5MOV ah,09INT 21hjmp a10;****************************************二进制转换十六进制btoh PROC NEARMOV CH,4rotate: MOV CL,4ROL BX,CLMOV AL,BLand AL,0fhadd AL,30hcmp al,3ahjl printitadd al,7hprintit:MOV dl,alMOV ah,2int 21hdec chjnz rotateretbtoh endpa50:;*****************************************显示not matchLEA DX,changeMOV ah,09INT 21hLEA DX,mess4MOV ah,09INT 21hjmp a10exit:retmain endpCODE ENDSEND START 四、运行结果及分析五、实验小结六、附录(选)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二循环与子程序程序设计一、实验目的1) 加深对循环结构的理解。
2)掌握循环程序的设计方法。
3)学习子程序的定义和调用方法。
4)掌握子程序、子程序的嵌套、递归子程序的结构。
5) 掌握子程序设计、编制及调试。
6) 熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。
二、实验内容1) 编制程序计算S=1+2·3+3·4+4·5+……+N(N+1)+……直到N(N+1)大于200为止,并将结果由屏幕上显示出来。
2)将从3000H内存单元开始的100个字节存储单元全部清0。
3)编制在屏幕上显示九九乘法表的程序。
4)编制在屏幕上显示用*组成的三角形的程序。
5)设有五个字数据存放在以BUF为首地址的内存单元中,要求采用调用多个字数据相加的子程序方法编程,和的低位字放在RESULT单元,和的高位字放在RESULT+2单元,并将结果显示在屏幕上。
6)编写一个递归子程序,计算指数函数X n的值,其中X,n从键盘输入。
三、实验设备PC机一台四、实验步骤1) 按程序流程图编制实验程序。
2) 输入源程序。
3) 汇编、连接程序,执行程序,检查结果。
4)对内存单元3000H开始的100个存储单元用E命令输入任意数。
5) 程序的执行可用DEBUG的G命令,也可用T命令单步跟踪执行。
6) 用D命令检查执行结果。
五、实验报告的要求1)列出源程序。
2)对程序中用到的寄存器说明其功能。
3)总结计数控制循环程序的设计方法。
4) 说明怎样使用DEBUG进行程序调试的。
调试过程中所遇到的问题是如何解决的。
实验2-1源程序:DATA SEGMENTBUF DB '1+2*3+3*4+4*5+...+N(N+1)=$'DATA ENDSSTACK1 SEGMENT PARA STACKDW 20H DUP(0)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1,ES:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,01HMOV BX,01HL1:INC BXMOV AX,BXINC AXMUL BL;(进行乘法运算,bl作为乘数)ADD DX,AX;(DX作为累加变量)CMP AX,200;N(N+1)是否大于200JBE L1MOV BX,DXLEA DX,BUFMOV AH,09HINT 21H;输出字符串MOV CX,4LOP:MOV AX,4MOV DX,BXMUL CLSUB AX,4MOV AH,ALMOV AL,CLMOV CL,AH;SHR DX,CL;cl作为移位位数寄存器AND DX,0FHCMP DX,0AHJBE L2ADD DX,7HL2:ADD DX,30HMOV CL,AL;MOV AH,02HINT 21HLOOP LOP;输出数据MOV AH,4CHINT 21HCODE ENDSEND START运行结果:实验2-2源程序:stack1 segment para stackdw 20h dup(0)stack1 endscode segmentassume cs:code,ss:stack1 start:mov ax,300hmov ds,axmov cx,100;cx作为循环变量lop:mov bx,cx ;bx作为地址偏移mov al,0h ;al为0,目的是清零mov -1[bx],alloop lopmov ah,4chint 21hcode endsend start运行结果:实验2-3源程序:data segmentBUF DB 09H,09Hdata endsstack1 segment para stackdw 20h dup(0)stack1 endsCODE SEGMENTassume cs:code,ds:data,ss:stack1,es:data START:MOV AX,DATAMOV DS,AXAND CX,0000HMOV CL,09H;;cl作为循环变量L1:MOV BUF,CLMOV CL,09HL2:MOV BUF+1,CLMOV AL,10SUB AL,BUFMOV DL,ALOR DL,30HMOV AH,02HINT 21HMOV DL,'*'MOV AH,02HINT 21HMOV BL,10SUB BL,BUF+1MOV DL,BLOR DL,30HINT 21HMOV DL,'='INT 21H;会运行一段小程序,使AX的值改变AND AX,0000HMOV AL,10SUB AL,BUFMOV DL,ALMUL BLMOV BL,10DIV BLMOV DL,ALMOV DH,AHOR DL,30HMOV AH,02HINT 21HMOV DL,DHOR DL,30HMOV AH,02HINT 21HMOV DL,' 'INT 21HMOV CL,BUF+1LOOP L2INT 21HMOV CL,BUFLOOP L1MOV AH,4CHINT 21HCODE ENDSEND START运行结果:实验2-4源程序:data segmentM DB 20HLS DB 00HLP DB 00Hdata endsstack1 segment para stack dw 20h dup(0)stack1 endsCODE SEGMENTassume cs:code,ds:data,ss:stack1,es:data START:MOV AX,DATAMOV DS,AXMOV AL,03HMOV AH,00HINT 10HMOV CX,5L1:MOV LP,CLMOV BX,6HSUB BX,CXMOV LS,BLMOV BH,00HMOV DH,LSMOV AL,MAND AH,00HSUB AL,LSMOV DL,ALMOV AH,02HINT 10HMOV AL,LSAND AH,00HMOV BX,2MOV AL,LSMUL BLSUB AL,1MOV LS,ALMOV AH,9HMOV AL,'*'MOV BH,0MOV BL,0DHMOV CL,LSAND CH,00HINT 10HMOV CL,LPAND CH,00HLOOP L1MOV AH,4CHINT 21H CODE ENDS END START运行结果:实验2-5源程序:STACK SEGMENT STACK DW 100H DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACK START:MOV AH,01HINT 21HAND BX,0000HSUB AL,30HMOV BL,ALMOV AH,01HINT 21HSUB AL,30HAND CX,0000HMOV CL,ALMOV AX,01HAND DX,0000HCALL MPUSH AXMOV BX,DXCALL SHOWPOP AXMOV BX,AXCALL SHOWMOV AH,4CHINT 21HM PROCSUB CX,1HJBE LCALL ML:PUSH DXMUL BXMOV CX,AXPOP AXPUSH DXMUL BXPOP DXADD DX,AXMOV AX,CXRETM ENDP SHOW PROCMOV CX,4L2:PUSH CXMOV CL,4ROL BX,CLMOV DL,BLAND DL,0FHCMP DL,0AHJB L3ADD DL,07H L3:ADD DL,30HMOV AH,02HINT 21HPOP CXLOOP L2RETSHOW ENDP CODE ENDSEND START运行结果:实验2-6源程序:STACK SEGMENT STACK DW 100H DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACK START:MOV AH,01HINT 21HAND BX,0000HSUB AL,30HMOV BL,ALMOV AH,01HINT 21HSUB AL,30HAND CX,0000HMOV CL,ALMOV AX,01HAND DX,0000HCALL MPUSH AXMOV BX,DXCALL SHOWPOP AXMOV BX,AXMOV AH,4CHINT 21HM PROCSUB CX,1HJBE LCALL ML:PUSH DXMUL BXMOV CX,AXPOP AXPUSH DXMUL BXPOP DXADD DX,AXMOV AX,CXRETM ENDP SHOW PROCMOV CX,4L2:PUSH CXMOV CL,4ROL BX,CLMOV DL,BLCMP DL,0AHJB L3ADD DL,07H L3:ADD DL,30HMOV AH,02HINT 21HPOP CXLOOP L2RETSHOW ENDP CODE ENDSEND START运行结果:。