宏汇编习题讲解2

上传人:痛*** 文档编号:203965074 上传时间:2023-04-25 格式:PPT 页数:30 大小:411KB
返回 下载 相关 举报
宏汇编习题讲解2_第1页
第1页 / 共30页
宏汇编习题讲解2_第2页
第2页 / 共30页
宏汇编习题讲解2_第3页
第3页 / 共30页
点击查看更多>>
资源描述
复习复习P179P179第第4-274-27题:题:编写一个程序从键盘输入编写一个程序从键盘输入4 4位十六进制数的位十六进制数的ASCIIASCII码,并将其转换成码,并将其转换成4 4位十六进制数存位十六进制数存入入DXDX中。中。分析研究分析研究 整个问题可以分为两部分,数整个问题可以分为两部分,数据输入和转换。据输入和转换。数据输入部分的流程图数据输入部分的流程图30H=AL=39H?AL-AL-30HAL-AL-37HYN1号系统调用号系统调用输入数到输入数到AL出错提示出错提示41H=AL=46H?YAL-AL-57H61H=AL=66H?NNYBL-4,DX-0DX左移四位左移四位数据存入数据存入DX的流程图的流程图DL-DL ALY结束结束BL=0?NBL-BL-1程序代码程序代码.model smallmodel small.data.datastrstr db 0dh,0ah,input error!$db 0dh,0ah,input error!$.code.codemov mov ax,dataax,datamov dsmov ds,ax,axmov dxmov dx,0,0mov blmov bl,4,4lplp:mov clmov cl,4,4shl dxshl dx,clclmovmov ah,1 ah,1intint 21h 21hcmpcmp al,30h al,30hjbjb over overcmpcmp al,39h al,39hja ja alpalpsub al,30hsub al,30hjmp jmp out1out1alp:alp:cmp cmp al,Aal,Ajb jb overovercmpcmp al,F al,Fja salpja salpsub al,37hsub al,37hjmp jmp out1out1salpsalp:cmp cmp al,aal,ajb jb overoveralp:alp:cmp cmp al,fal,fja ja overoversub al,57hsub al,57hout1:or dl,alout1:or dl,aldec bldec bljnz lpjnz lpjmp jmp donedoneover:over:movmov ah,9 ah,9mov dxmov dx,offset,offset strstrint int 21h21hdone:done:mov mov ah,4chah,4chint int 21h21hendend编码要点:编码要点:1.1.先左移再放入新的十六进制数,最后一先左移再放入新的十六进制数,最后一位十六进制数放入时,不用再左移了;位十六进制数放入时,不用再左移了;2.2.非法字符输入,给出错误提示;非法字符输入,给出错误提示;3.3.正常输入时,输入完正常输入时,输入完4 4位十六进制数即结位十六进制数即结束。束。P179P179第第4-294-29题:题:读取系统日期并显示。读取系统日期并显示。分析研究分析研究 核心问题是如何将读取的二进核心问题是如何将读取的二进制数转换为制数转换为BCDBCD码后再转换为码后再转换为ASCIIASCII码,然码,然后输出。后输出。全部程序由主程序和子程序CONVERT组成.modelsmall.datat1db4dup(?),-,2dup(?),-,2dup(?),0dh,0ah,$.codemovax,datamovds,axmovah,2ahint21h;hourincx,minuteindh,secondindlmovax,cx年份有4位,要转换两次movbl,100;yearin4digitsdivblmovbl,ahmovsi,offsett1callconvertmoval,blmovsi,offsett1+2callconvert转换月和日,然后输出显示moval,dhmovsi,offsett1+5callconvertmoval,dlmovsi,offsett1+8callconvertmovdx,offsett1movah,9int21h现在知道t1数据结构的好处了?movah,4chint21h子程序将不超过99的数分离并转换为ASCII码放入数据区convertprocnearaamaddah,30hmovsi,ahaddal,30hmovsi+1,alretconvertendpend当然子程序也可以这样编convertprocnearmovah,0movbh,10divbhaddal,30hmovsi,ahaddah,30hmovsi+1,alretconvertendp评注1.为防止程序编码效率低下,最好还是先画好流程图;2.画流程图不是目的,而是为编码服务,还有一个功能是方便他人阅读;3.画流程图有一定规范,不能太随便,不然没法交流;课程设计报告必须画流程图!4.掌握流程图是计算机程序设计的基础。程序=流程图+数据结构I/O控制已知某输入设备的数据端口地址为60H,状态端口地址为61H,其中D1位为“1”时,表示“READY”状态,数据与状态端口均为8位。试编程实现:采用查询方式从该设备输入10个ASCII码表示的十进制数,并求出这10个十进制数的累加和;将 此 累 加 和 转 换 成 BCD码,并 存 放 到NBCDH(百位数)和NBCDL(存十位和个位数)单元中。注注:只要求写出程序的可执行部分,可以不写任何伪指令。任务MOV CX,10MOV BL,0 INLOOP:IN AL,61H TEST AL,02H JZ INLOOP IN AL,60H AND AL,OFH;ASCII十进制(BCD)ADD BL,AL LOOP INLOOP;共输入10个 MOV AL,BL ;累加和AL任务(2)MOV AH,0 MOV BL,100 DIV BL;AXBLAL,余数AH MOV NBCDH,AL;存百位数 MOV AL,AH MOV AH,0 MOV BL,10 DIV BL;任务续MOV CL,4 ROL AL,CL;AL循环左移四位 OR AL,AH;形成组合型BCD码 MOV NBCDL,AL;存十位,个位数HLT存储器如下图,某系统的存储器中配有两种芯片:容量为2KX8的EPROM和容量为1KX8的SRAM。利用A10-A15采用74LS138译码器产生片选信号,Y0、Y6、Y7直接连到三片EPROM(1#、2#、3#),Y4、Y5则通过一组门电路接到四片SRAM(4#、5#、6#、7#)。(1)确定存储器1#、2#、3#、7#的地址范围;(2)已知5#存储器范围为A400H-A7FFH,6#存储器范围为A800H-ABFFH,补画出所需连线。根据电路写地址范围1.各存储器芯片的地址范围如下:1#:8000H87FFH2#:B000HB7FFH3#:B800HBFFFH7#:AC00HAFFFH按地址范围接线2.接线为PIN4-Y4PIN5-PIN13(A10)PIN10Y5(PIN12)编写将一位十六进制数HEX转换成ASCII码并显示的子程序。htoa proc nearmov dl,hexcmp al,10jnc alphaadd dl,30hjmp disalpha:add dl,37hdis:mov ah,2int 21hrethtoa endp 常用接口芯片某8086微机系统中8253的端口地址为40H43H,要求计数器0工作在方式0,计数初值为0FFH,按二进制计数;计数器1工作在方式2,计数初值为10,按BCD码计数。试写出初始化程序段。8253控制字格式如下:分析由题意,计数器0的控制字为00010000=10H,按二进制写计数初值低位,计数器1的控制字为01010101=55H,按BCD码写计数初值低8位。初始化程序段如下:程序mov al,10hout 43h,almov al,0ffhout 40h,almov al,55hout 43h,almov al,10hout 41h,al 其它复习要点1.做过的作业,及时改正2.实验程序3.测验过的问题 4.闭卷考试,需要参考的内容都在卷子上5.综合难度不比已解密的试卷更难6.别忘记写姓名、学号7.祝各位好运!
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!