码迷,mamicode.com
首页 > 编程语言 > 详细

汇编输入行与列实现对二维数组的查询

时间:2018-10-19 00:16:03      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:row   int   维数   png   dos   技术分享   实现   概念   please   

初学汇编,简单实现了一下键盘输入行和列,然后屏幕显示对应元素的功能。
一.思路
了解到汇编中其实没有二维数组的概念,需要用一维数组进行模拟,接着就是傻傻地写了,毫无技术含量。
二.注意点
DOS功能调用不管是键盘输入,还是屏幕输出都是以字符形式,要变成10进制要减去对应的ASCLL码,比如0的ASCLL码就是48,代码有体现到。
三.代码

dseg segment
    str db '1','2','3','4','5','5','4','3','2','1'
    str1 db 'please input the row:',0dh,0ah,'$'
    str2 db 'please input the column:',0dh,0ah,'$'
    str3 db 'too big!',0dh,0ah,'$'
    row db 2
    col db 5
    row1 db 0
    col1 db 0
dseg ends
cseg segment
    assume  cs:cseg,ds:dseg
start:  
    mov ax,dseg
    mov ds,ax
    lea bx,str
    xor ax,ax
    ;
    lea dx,str1
    mov ah,09h
    int 21h
    mov ah,01h
    int 21h
    sub al,48
    mov row1,al
    mov ah,02h
    mov dl,0dh
    int 21h      ;out huiche
    mov ah,02h
    mov dl,0ah
    int 21h      ;out huanhang
    ;
    lea dx,str2
    mov ah,09h
    int 21h
    mov ah,01h
    int 21h
    sub al,48
    mov col1,al
    mov ah,02h
    mov dl,0dh
    int 21h      ;out huiche
    mov ah,02h
    mov dl,0ah
    int 21h      ;out huanhang
    ;
    mov al,row
    cmp al,row1
    jl gg
    mov al,col
    cmp al,col1
    jl gg
    mov ax,0
    sub row1,1
    sub col1,1
    mov al,row1                 ;row1*col+col1                                                                              
    mov cl,col
    mul cl
    add al,col1
    jmp ll
gg: 
    lea dx,str3
    mov ah,09h
    int 21h
    mov ah,4ch
    int 21h
ll:
    lea bx,str
    add bx,ax
    mov dl,[bx]
    mov ah,02h 
    int 21h
    mov ah,4ch
    int 21h
cseg ends
    end start

四.运行结果
技术分享图片

汇编输入行与列实现对二维数组的查询

标签:row   int   维数   png   dos   技术分享   实现   概念   please   

原文地址:https://www.cnblogs.com/Advancingxq/p/9813344.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!