- 5
- 0
- 约2.31万字
- 约 102页
- 2019-01-09 发布于广西
- 举报
补充实例 【例2】 MOV AX, DATA1 MUL DATA2 MOV DATA3,AX MOV DATA3+2,DX 注: 字乘 功能: 【例1】 在BUF1、BUF2、BUF3字节 类型变量中,分别存有 8 位 带符号数a、b、c,编程实现 (a×b +c) /a ) 。 例3.8从键盘上键入0~9中任一自然数N,将2的N次方值在显示器的下一行显示出来。 求一个数的N次方值可以用查表法实现,也可以用乘法运算实现。用查表法求一个数的N次方值与例3.5类似,此处使用乘法运算来编制该程序。由于乘法运算都是乘2操作,故用逻辑左移实现。设其初值为1,键入的N值就是对该初值移位的位数。求得的徝是一个二进制数,为了输出还要将二进制数转换为十进制数的ASCII码。其最大值是2的9次方,29=512,最大值的ASCII码占3个单元,再加上回车、换行和?$?,所以输出数据区OBUF最多6个单元。程序如下: OBUF DB 6 DUP(0) MOV AH,1 INT 21H AND AL,0FH ;将?N?转换为N MOV CL,AL MOV AX,1 SHL AX,CL MOV BX,5 MOV OBUF[BX],?$? MOV CX,10 ;转换为十进制数的ASCII码 AGAIN: MOV DX,0 DIV CX OR DL,30H DEC BX MOV [BX],DL AND AX,AX JNZ AGAIN SUB BX,2 MOV WORD PTR[BX],0A0DH ;存入回车换行 MOV DX,BX ADD DX,OFFSET OBUF MOV AH,9 INT 21H 例3.9 从键盘上键入2位十六进制数将其拼合成一个字节存入字节变量SB中。 IBUF DB 3,0,3 DUP(0) SB DB 0 MOV DX, OFFSET IBUF ;键入2位十六进制数 MOV AH, 10 INT 21H MOV AX, WORD PTR IBUF+2 ;键入字符送AX SUB AX, 3030H ;字符变为十六进制数 CMP AL,0AH JB LNSUB7 SUB AL,7 LNSUB7: CMP AH,0AH JB LNSUB7 SUB AH,7 HNSUB7: MOV CL, 4 ;将AX中的数拼合成一个字节 SHL AL ,CL OR AL, AH MOV SB,AL PUSH AX PUSH BX 保护现场 PUSH CX ﹕ 子程序工作部分 POP CX POP BX 恢复现场(注:先进后出) POP AX RET 如:某子程序要用到AX ﹑BX ﹑CX,可用进栈﹑出栈实现保护与恢复现场. (1)子程序中保护(一般用此法)→在子程序开始,将子程序用到的所有寄存器的内容保护起来,在返回之前恢复这些寄存器的内容. 如:调用DEF子程序,主、子程序中均要使用AX,可用以下方法保护: PUSH AX ;保护现场 CALL DEF POP AX ;恢复现场 子程序结构: 保护现场→取入口参数进行加工处理 →存结果至指定单元(作出口准备)→恢复现场→返回 (2)在主程序中保护与恢复→在调用前保护某些寄存器 的内容,返回后再恢复. 格式:CALL 子程序名 功能:将返回地址进栈,将程序控制转移到子程序 子程序名有类型属性:NEAR→主﹑子在同一段内,FAR→主﹑子在不同段.段内只改变IP,段间改变CS:IP,具体操作: 段内调用:IP→[SP-2],SP-2→SP, O
您可能关注的文档
最近下载
- 小学数学三年级下册思维训练题《用平移法求周长》(附例题).doc VIP
- 光电信息技术教学课件(全套).pptx
- 初中体育课全套教案 .docx VIP
- 2024年江苏城市职业学院高职单招(英语/数学/语文)笔试历年真题摘选含答案解析.docx VIP
- 新能源汽车充电设施的基本知识及安全管理.ppt
- 套筒式烟囱中钢内筒内力计算探讨.pdf VIP
- 部编版语文三年级下第一单元集体备课.docx VIP
- 苏科版初中物理知识点.pdf VIP
- 2024年江苏城市职业学院高职单招(英语/数学/语文)笔试历年真题摘选含答案解析.docx VIP
- 山东烟台市莱山区2025一2026学年第一学期期末第二阶段检测练习初四物理试卷.pdf VIP
原创力文档

文档评论(0)