版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习题一的补码,大写字母的ZASCII码1无符号数:11010011=211=D3H,(4)0DH等于十进制数13,是十进制数1301110111=119=77H,10000011=131=83H,00101111=47=2FH,10101010=170=AAH的补码,回车符的ASCII码8(1)108=01101100B=6CH,补码01101100B,压缩码BCD0000000100001000,ASCII码11010011=-45=D3H,313038H带符号数:01110111=+119=77H,10000011=-125=83H,(2)46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H00101111=+47=2FH,10101010=-86=AAH25E8AH,0BE6H,3DEH,4940H(3)–15=11110001B=F1H,补码11110001B,ASCII码2D3135H(4)300011101+00110101=01010010=52H=82254=0000000011111110B=00FEH,补码0000000011111110B,压缩BCD01001001+11101000=00110001=31H=49码0000001001010100,ASCII码323534H10111110+01010010=00010000=10H=169(1)56+63=01110111B,,,CF=0SF=0ZF=0,OF=010011010+11110001=10001011=8BH=-117(2)83-45=00100110B,,,CF=0SF=0ZF=0,OF=0400101001+01010011=01111100+00000110=10000010=82H=82(3)-74+29=11010011B,,CF=0SF=1,,ZF=0OF=001110011-00100100=01001111-(4)-92-37=01111111B,CF=1,00000110=01001001=49H=4901100110+00011000=01111110+00000110=10000100=84H=840000000100110010+01110101=0000000110100111+00000110SF=0,,ZF=0OF=110回车、换行、响铃、ESC键、空格键、@、P、p习题二9=0000001000000111=0207H=20716最少划分为个逻辑段,最多划分为5000020A3H,FF94H,00003456H,65536个逻辑段〔每段16个字节〕007FH,FFFFEC00H10CS:IP,DS:BX、SI、DI,ES:BX、6无符号数:0~65535,0000H~SI、DI,SS:SP、BPFFFFH;带符号数:-32768~+32767,11字节单元保存8位数,字单元保存168000H~7FFFH位数。根据源操作数的属性确定要访问的是7字节单元还是字单元。(1)38H等于十进制数56,是十进制数5612对于字节单元来说,偶地址和奇地址的补码,数字对于字单元而言,最好用偶地址保存,8的ASCII码,十进制数38一样;的压缩BCD码可减少CPU的访存次数。(2)FFH等于十进制数-1,是带符号数-113首单元的物理地址=38AE8H,末单的补码,无符号数为255(3)5AH等于十进制数90,是十进制数90元的物理地址=38AE8H+7FFFH=40AE7H16(1)物理地址址=20F92H(3)物理地址(2)和(3)的物理地址是一样的。说明逻辑地ADDAX,[BX]址不唯一可对应到同一个物理单元上。17代码段CS:IP的物理地址=27679H(2)物理地8(1)MOVAX,BX(2)MOVCL,15(3)=20F92H(4)MOV[BX+SI],AL(5)MOV,多个逻辑地址AX,VALUE[SI](6)SUBAX,DS:[2000H]=55A84H堆栈段SS:SP的物理地址9=4DB65H(1)ADDAX,[X+4]MOVY,AX数据段DS:BX的物理地址=17678H附(2)MOVBX,4加段ES:DI的物理地址=2BA41H18当前栈指针所指单元的物理地址是ADDAX,X[BX]1522CH。堆栈区中还能保存254个字。19执行E200MOVY,AX(3)MOVBX,4MOVSI,OFFSETXADDAX,[BX+SI]MOVY,AX20执行U10021执行RCX,然后输入10022执行EDS:0‘a’‘b’‘c’‘d’习题三10立即寻址方式中操作数(立即数)和3MOVAX,BX源操作数为寄存器寻指令一起存放在代码段中。习题四址,EA无,物理地址无MOVAX,1290H立即寻址,EA无,物理10(1)DATASEGMENT地址无MOVAX,[BX]寄存器间接寻址,XDW0EA=1290H,物理地址MOVAX,DS:[1290H]直接寻址,EA=1290H,物理地址MOVAX,[BP]寄存器间接寻址,EA=6756H,物理地址MOV[DI][BX],AX目的操作数为基址变址寻址,EA=3C06H,物理地址MOVES:[SI],AX寄存器间接寻址,EA=348AH,物理地址=2FBB0HYDW0DATAENDS=2FBB0H(2)STRINGDB’Computer’(3)COUNTDB100DUP(?)(4)PIEQU3.14=26A56H(5)VALUELABELBYTE11〔1〕对。〔2〕错。260超出了字节=32526H范围。〔3〕错。X3是字节型,1234H是字型,不匹配。=50CAAH7MOVAX,[CX]错。CX不能为间址寄存器MOVAL,1200H错。立即数超出8位寄存〔4〕对。〔5〕错。缺少DUP。〔6〕对。12〔1〕AL=3。〔2〕AX=2103H。〔3〕DX=TABLE的偏移地址。〔4〕CL=33H器范围MOVAL,BX错。两个操作数不匹配MOV[SI][DI],AX错。两个变址寄存器不〔5〕BX=TABLE的段地址。〔6〕BX=1。〔7〕DX=TABLE的偏移地址。13MOVDX,2012H能在一起MOVES:[DX],CX错。DX不能为间址寄MOVAX,5D68HMOVCX,1003H存器MOV[AX],VALUE错。AX不能为间址寄MOVBX,49A6HADDAX,BX(SUBAX,BX)ADCDX,CX(SBBDX,CX)存器MOVCOUNT,[SI]错。两个操作数不能都是存储单元14SUBAX,CXSBBDX,015MOVAX,extraMOVES,AX16191〔〕减法:(2)加法:MOVAX,8576HMOVAX,8576H(1)MOVAL,16ADDAL,XMOVBL,5IMULBLMOVBX,9988HMOVBX,9988HSUBMOVZ,AX(2)MOVBL,4MOVAL,XIDIVBLAX,BXADDAX,BX结果:AX=EBEEH结果:AX=1EFEHSUBAL,YCF=1,,,OF=0ZF=0SF=1CF=1,OF=1,,ZF=0SF=021MOVZ,AX(3)MOVAL,XMOVBL,8IMULBL(1)MOVAL,56HMOVBL,34HMOVDX,AXMOVAH,0MOVAL,YMOVBL,16IDIVBLADDAL,BLDAAMOVY1,AL(2)MOVAX,128HMOVBX,35HCBWSUBAX,BXADDDX,AXMOVAH,0MOVAL,WIMULALDASMOVY2,AL(3)MOVAL,68HMOVBL,23HSUBDX,AXMOVZ,DX(4)MOVAL,XADDAL,YADDAL,BLMOVBL,45HSUBAL,BLDASMOVBL,XSUBBL,YMOVY3,AL22MOVAH,0IMULBL(1)MOVAX,0708HMOVBX,0406HADDAL,BLADDAH,BH;不用带进位加AAA;加法调整,含进位调整MOVBX,AXMOVZ,AXMOVAL,XIDIVYCBWSUBZ,AX17Z=(5+22-15)*14=168XCHGAH,AL;高位调整4AAA18从伪指令ENDSTART处获知程序MOVBH,ALMOVZ1,BX;保存十位在CF、各位,百位从START标号开始。start:中(2)MOVAX,0905HMOVBX,0207HSUBAL,BLSUBAH,BH;不用带借位减AAS;减法调整MOVZ2,AXmovah,1;键盘输入int21hsubal,20h;变为大写movdl,almovah,2int21h(3)MOVAX,0102HMOVBX,0006HMULBX;乘法先不用调整MOVBX,0303HSUBAX,BXmovah,4chint21hendstart25.modelsmall.dataAAS;减法调整MOVZ3,AXxdb12h(4)MOVAX,0704HMOVBX,0108HADDAL,BLydb34h.codestart:ADDAH,BHAAA;加法调整MOVBL,6movax,@datamovds,axmoval,xAAD;除法调整DIVBLMOVBH,AH;余数保存在BHANDAX,000FHAAA;商调整addal,y;结果为46Hmovah,al;AH=46Handal,0fh;AL=06Hmovcl,4rolah,cl;AH=64Handah,0fh;AH=04Haddax,3030h;AX=3436Hmovbx,axMOVZ4,AX;保存商23.modelsmall.datamovdl,bh;显示movah,2int21h4buffdb?.codestart:movdl,bl;显示6int21hmovax,@datamovds,axmovah,1;键盘输入int21hsubal,30h;去掉ASCII码movbuff,almovah,4chint21hendstart26datasegmentxdbmovah,4chint21h'0.000','1.000','1.414','1.732','2.000'dbendstart24'2.236','2.449','2.646','2.828','3.000';建立字符表.modelsmall.codeydb5dup(?);存放查到平方根udb3;要查的数dataendsint21hendstartcodesegmentassumecs:code,ds:datastart:28编程实现公式计算。Z=X/4+16Y.modelsmall.datamovax,dataxdb4movds,axydb6moval,u;要查的数movcl,5zdb?.codemulcl;u*5=15(号单元开始)start:movah,0movbx,ax;地址保存到bxmovsi,0movax,@datamovds,axmoval,x;movcl,2saral,cl;X/4movcl,4movbl,ysalbl,cl;16Yaddal,bl;X/4+16Ymovz,almovah,4chint21hlet1:moval,x[bx];取出平方根数字movy[si],al;存入yincsiincbxlooplet1;循环取出movah,4chint21h5次codeendsendstartendstart2927.modelsmall.data.modelsmall.datax1db'zhangyan$';为10个字符宽度ydb?,?x2db'lili$'.codex3db'wanglan$'x4db'zhaoxue$'x5db'lijiang$'udb3;要查的学号.codestart:movax,@datamovds,axmoval,3;设al=3movcl,6start:mulcl;al*6movcl,4;设cl=4subal,cl;相减movbl,3movax,@datamovds,axmoval,u;给出学号movcl,10idivbl;/3movy,al;商mulcl;u*10=30(号单元开始)movah,0movy+1,ah;余数movah,4chint21hmovdx,ax;地址保存到dxmovah,9;9号功能显示字符串int21hendstartmovah,4ch习题五11进位标志CF=112先把AX的值除以288等于0246H,设X、Y、Z为字节单元。如果X≥0,Z=4X-Y/16,否则,Z=X的绝对值。0,剩下AL=06H加上再把高12位屏蔽为编程30H变为ASCII码显示出来。序实现。13程序如下:判断X>0,是,Z=X-Y;否则Z=X的绝DATASEGMENTXDB3对值14(1)目的操作数是存储单元时,要用YDB5PTR伪操作指出单元的属性〔2〕DS段寄ZDB?DATAENDS存器使用非法〔3〕立即数使用非法(4)目CODESEGMENT的操作数不允许是立即数(5)两个操作数ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX不允许都是存储单元(6)移位次数超过1要用CL表示。15ANDAL,11011111B16(1)AL=30H(2)AL=B7H(3)AL=C8H(4)AL=38HMOVAL,XCMPAL,027分支程序设计。完成如下公式的计JLSS1MOVCL,2算,请写出程序。〔X+3〕/2X>0SALAL,CLY=0X=0X×4X<0MOVBL,YMOVCL,4SARBL,CLSUBAL,BLJMPOUT1程序如下:DATASEGMENTXDB23YDB?SS1:NEGALOUT1:MOVZ,ALMOVAH,4CHINT21HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,XCMPAL,0CODEENDSENDSTART29字数组M中有10个数据,分类统计其中正数、负数、0的个数,分入POSI、别存JESUB2NEGA、ZERO单元。JGSUB1程序如下:DATA1SEGMENTMDWMOVCL,2SALAL,CLJMPSHORTSUB2SUB1:ADDAL,3SARAL,121,-34,32,112,-324,0,76,0,48,50POSIDW?NEGADW?SUB2:MOVY,ALMOVAH,4CHINT21HZERODW?DATA1ENDSCODE1SEGMENTASSUMECS:CODE1,DS:DATA1START:MOVAX,DATA1CODEENDSENDSTARTMOVDS,AXMOVCX,10习题六11累加和TOTAL=83LEASI,M1213(1)将BB1:RCLAL,1改为BB1:ROLAL,1循环统计X中的0个数AGAIN:CMPWORDPTR[SI],0JLLOWERJEEQUALINCPOSI(2)将BB2:CMP[BX],’T’LOOPNEBB2JMPLPP1LOWER:INCNEGAJMPLPP1改为:DECBXEQUAL:INCZEROLPP1:ADDSI,2DECCXBB2:INCBXCMP[BX],’T’LOOPNEBB2JNZAGAIN15计算MOVAH,4CHINT21HY=1×2+3×4+5×6+7×8+9×10的程序段答案:MOVAL,1MOVBL,2CODE1ENDSENDSTART30试编写程序,从键盘接收一英文单词,MOVDX,0以空格结束,将其存入BUF开始的存储单MOVCX,5AA1:MULBL元中,并在最后加上字符串结束符’$’。ADDDX,AX主要程序部分:LEABX,BUFLOP:MOVAH,1INT21HINCBLMOVAL,BLINCBLCMPAL,20HJENEXTLOOPAA116写程序段。查找CATT表中的字MOV[BX],ALINCBX符”@”,找到后将SIGN单元置1,否则SIGN单元置。0JMPLOPcattdb'asd@ddd'signdb?NEXT:MOVBYTEPTR[BX],’$’31……movax,extra编程。将AX寄存器中的16位数分成4组,每组4位,从低到高分别放在AL,BL,CL,moves,axDL中。movsign,0moval,'@'leadi,cattcld程序段:START:MOVAX,1234HMOVBX,AXANDAL,0FH;4ANDBL,0F0H;3ANDAH,0FHmovcx,7repnzscasbjcxzneeMOVCL,AH;2ANDBH,0F0HMOVDL,BH;1movsign,1nee:movah,4chint21h17写程序段。在长度为N的字数组start:VALUE中统计负数的个数并保存到AX中。valuedw2,-4,-5,3,6,6,-8nequ($-value)/2;元素个数……movax,datamovds,axmoves,axleasi,bunch1leadi,bunch2movbx,0;bh=相同的个数,bl=不同的start:movax,datamovds,axmovcx,n个数movcx,7let1:movbx,0movax,0rept1:movsi,value[bx];取出元素cmpsi,0moval,[si]cmpal,[di];两字符比较jzequl;相同转equljgelet1;≥0转let1incax;为负数,ax加1let1:addbx,2incbl;不同bl加1jmpout1equl:incbhlooprept1out1:incsi18从键盘输入一个数字,在屏幕上显示出incdilooplet1movdl,'n';显示'n',代表不同movah,2h以该数字开始10个数字串。CODESEGMENTASSUMECS:CODESTART:MOVAH,1INT21Hint21haddbl,30h;加上ASCII码movdl,bl;显示不同的个数int21hMOVCX,10MOVBL,ALREPT1:CMPBL,'9'JLENEXTmovdl,'e';显示'e',代表相同int21hSUBBL,10addbh,30hNEXT:MOVDL,BLMOVAH,2movdl,bh;显示相同的个数int21hINT21Hmovah,4chINCBLint21hLOOPREPT1codeendsMOVAH,4CHINT21HendstartCODEENDS21ENDSTARTDATASEGMENTSTRDB‘SDABFGH0’DATAENDS19datasegmentbunch1db'stadent'bunch2db'studEnt'dataendsCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADI,STRcodesegmentassumecs:code,ds:data,es:dataSPACE:MOVCX,10MOVAL,[DI]CMPAL,0JEOUTassumecs:code,ds:datastart:movax,datamovds,axmovcx,numCMPAL,20HJEDELETEmovsi,-2movbx,0JMPEXITrept1:pushcx;保存外循环次数SUBCX,DIMOVSI,DIDELETE:MOVBL,[SI+1]MOV[SI],BLINCSImovcx,nrept2:moval,score1[bx];从score1取数cmpal,30h;判断是否0-9jlexitcmpal,39hLOOPDELETEEXIT:JMPSPACEOUT:MOVAH,4CHINT21Hjgexitandax,000fh;去掉ASCII码xchgax,xmovdx,10;将ax中前一次形成的数扩大10倍CODEENDSENDSTARTmuldx23设计思路:xchgax,xaddx,ax;相加后保存到xexit:incbx;取下一位数looprept2。外循环控制个数,用x〔1〕用EQU伪指令获得需转换的十进制数的个数;〔2〕用双重循环popcx;弹出外循环次数作为中间变量;addsi,2〔3〕内循环ASCII码后按位数扩大10倍再相加,保存movax,xmovscore2[si],ax;转换将一个3位十进制数去掉后的数据保存到后即存储为二进制数;score2〔4〕分两个数组保存ASCII码表示的十movx,0进制数和转换后的二进制数。looprept1程序如下:;6-23.asm将内存中用ASCII码表示的movah,4ch100以内的十进制数转变为二进制数int21hdatasegmentcodeendsendstart习题七score1db36h,37h,20h,31h,30h,30h,38h,35h,20h,31h,30h,30h;即67,100,85,12功能:字节数相加。X和BL相加两个100保存到Y。xdw?13功能:键盘输入的字符保存到KEYnequ3;三位数单元中,直到按回车为止。numequ(x-score1)/n;十进制数个数14功能:将X单元中的十六进制3AHscore2dwnumdup(0);保存转换后的变为十进制入栈保存,AH中为余数。先将0008H入栈,再将0005H入栈,结果为二进制数dataends58。codesegment16PUSHAX23PUSHBXcalcuprocMOVBX,0pushaxLET1:MOVAH,1INT21HpushbxpushsiCMPAL,0DH;输入回车退出JZEXITmovax,0moval,xMOVBUFFER[BX],AL;保存到BUFFERandal,alINCBXjnszzJMPLET1negalEXIT:POPBXPOPAXmovfuhao,'-'zz:RETmovsi,0KEY_INENDP17movbx,10;将变为十进制数真值axlet1:KEY_IN_DECPROCPUSHAXmovdx,0incsi;统计余数个数PUSHBXidivbxMOVX,0movy[si],dx;在y单元保存余数cmpax,0MOVBX,0MOVSI,0jnzlet1LET1:MOVAH,1INT21HpopsipopbxCMPAL,0DH;输入回车退出JZEXITpopaxretMOVBUFFER[SI],AL;保存到BUFFERINCSIcalcuendp30JMPLET1EXIT:MOVCX,SI;位数放在CXMOVSI,0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年单杠蹬地翻身上说课稿
- 2025-2026学年化学反应原理的说课稿
- 2025-2026学年尝试 作文指导说课稿
- 初中物理电磁铁课件
- 说明文复习课件
- 《圣博德学校》课件
- 宁夏石嘴山市第-中学2026-2027学年高二上学期9月考试生物试卷
- 《haFGD脱硫喷嘴》课件
- 2026年行政事业单位决算管理知识试题及答案
- 门诊手术知情同意书复核归档
- 2026年秋统编版九年级语文上册期中真题卷02含作文范文
- 2026年基层公共就业服务培训试卷及答案
- 2026年ISO9001内审员考试真题及答案解析
- (完整版)PE聚乙烯
- 建筑物消防安全疏散设计规范2025版
- 中欧关系现状与发展趋势
- 2026山东青岛市财通集团有限公司招聘27人考试参考题库及答案解析
- 小学数学课堂中生成式人工智能辅助教师教学问题解决研究教学研究课题报告
- 国旗法与国徽法课件
- GB/T 31439.2-2025波形梁钢护栏第2部分:三波形梁钢护栏
- 人教版八年级历史上册第一次月考试卷(附答案)
评论
0/150
提交评论