• 【汇编程序】从键盘上输入一个10进制数字,查表求键入数字的平方值


    需求:从键盘上输入一个10进制数字,查表求键入数字的平方值 

    实现思路:定义数据段 一个提示信息,使用db字节来存储 并以'$'符号作为结束标志,定义一个变量存储 0-9对应的平方值

     先赋值代码段段地址和偏移量地址,调用dos9号功能 显示以$结束的标志字符串,提示用户输入.接着调用dos1号功能 接收用户输入的,并在屏幕上显示。这里用and(与) 进行相与之后获取了键盘上输入的值,将存储0-9对应的平方值的变量的获取到对应的偏移地址。ah 高位清零 这时最主要的一点 就是 table中 变量的对应的数的平方的地址 也是该数。例如: 3 所对应的就是9 所以偏移地址就是 table的偏移地址加上用户键盘输入的数字。就是概述的偏移地址。使用间接寻址方式,获取到该数的平方数,程序结束。

    ;需求:从键盘上输入一个10进制数字,查表求键入数字的平方值 存入al寄存器中 并显示有关的提示信息
    ;实现思路:在程序的数据段,先给出数字0-9的平方值 逐个存入table开始的内存中 形成表格
    ;代码段由3部分组成,显示提示信息 等待键入数字 查表求键入数字的平方值 并将结果存入al中
    data segment
        table db 0,1,4,9,16,25,36,49,64,81 ;数字 0-9的平方值
        buf db 'please input a number (0-9):',0dh,0ah,'$'; 提示信息  ;汇编中 定义字符串要使用db字节类型      0dh 回车 0ah换行
    data ends 
    
    code segment 
        assume cs:code,ds:data
       start:mov ax,data
             mov ds,ax                 ;设置ds
             mov dx,offset buf         ;设置dx 使字符串首地址=ds:dx
             mov ah,9h;                ;dos 9号 功能调用 显示以$结尾的字符串
             int 21h                   ;显示提示信息
             
             mov ah,01                 ;dos 1  从键盘输入字符 并在屏幕上显示 
             int 21h                   ;al-键入数字的ascll码
             and al,0fh                ;al-截下数字值  
             
             mov bx,offset table       ;bx指向头地址table
             mov ah,0                  ;ax寄存器高字节清0
             add bx,ax                 ;表头地址+键入数字al 结果存入bx
             mov al,[bx]               ;查表求得平方值
             
             mov ax,4c00h             ;程序结束
             int 21h                   ;返回dos
             
          code ends
         end start
             
             
             
  • 相关阅读:
    VSS使用
    Delphi简单数据库连接程序
    为表增加字段与拷贝数据到另一个表
    VSTS 使用
    Delphi实现个相似的功能界面共用一个窗体
    看代码笔记
    数据库安全管理
    函数
    【USACO】Ordered Fractions 顺序的分数
    C# 专业数据库连接配置界面
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860881.html
Copyright © 2020-2023  润新知