接口实验 —HELLO WORLD(汇编语言)

一、实验目的

  1. 掌握在 PC 机上以十六进制形式显示数据的方法。

  2. 掌握部分 DOS 功能调用使用方法。

  3. 熟悉集成软件调试环境。

二、设备以及设备使用

  • 上位机:A86集成环境软件

  • 下位机:危机接口设备80486DX(实验箱编号:1808134)

三、实验内容

  • DOS 功能调用
    指汇编程序通过 INT 21H 软中断来调用 DOS 内部子程序完成特定的一系列操作的一种方法。

  • 调用方法
    调用前将功能号送 AH 寄存器,同时根据功能号规定的要求准备好所有的参数,然后执行 INT 21H

本实验显示第一行“hello world-1〞 第二行品示 “hello world-2"
(1) 显示单个字符输出
入口:AH=02H
调用参数:DL=输出字符
(2) 显示字符串
入口:AH=O9H
调用参数:DS:DX=串地址,“$’为结束字符
(3)返回DOS 系统
入口:AH=4CH
调用参数:AL=返回码

 

使用功能号为02和09来进行字符串的输出

代码表示如下

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Author:
;coment:        Hello,World

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
• model small
• 486
assume CS: code, SS: stack, DS: data                           ;段寄存器说明,依次为代码段、堆栈段、数据段
data segment                                                                    ;数据段定义开始
        NUMBER DB 'hello, world!-1',0AH, 0DH                 ;被显示的字符串,0AH和0DH依次为回车和换行,保证输出为两行
        NUMBER1 DB 'hello, world!-2',0AH, 0DH,'$'         ;被显示的字符串,$是字符串结束的标志,因为对应功能号09输出的是字符串
data ends                                                                           ;数据段定义结束
stack segment                                                                   ;堆栈段定义开始
        DB        40 DUP (0)
stack        ENDS                                                                 ;堆栈段定义结束
code segment
start:                                                                                   ;代码段定义开始
        MOV AX, data                                                            ;将data存入DS中
        MOV DS, AX
        LEA BX, NUMBER                                                     ;将NUMBER的偏移地址存入BX中
        MOV CX, 16                                                               ;设置数据段的开始地址,即需要循环的次数。使用循环操作是因为AH为02只能进行单个字符的输出
re:
        MOV DL, [BX]                                                            ;[]:取对应地址表示的内容,即NUMBER中的字符
        MOV AH,2
        INT 21H
        INC BX                                                                        ;INC表示将偏移地址BX+1
        LOOP re                                                                      ;loop表示进行循环操作
mov DX, OFFSET NUMBER1                                             ;OFFSET取NUMBER1的偏移地址
MOV AH, 09H
INT 21H
        ;MOV AH, 1                                                                ;用户输入按键后运行结束
        ;INT 21H
  mov cx, 0000h

  loop $                                                                               ;延迟操作
        MOV AH, 4CH
        INT 21H                                                                      ;返回dos
code ends                                                                          ;代码段结束
end start                                                                            ;源程序结束

四、实验步骤

  1. 安装USB驱动

  2. 打开集成开发环境

  3. 找到该实验的路径,打开工程文件

  4. 点击,左下角会显示构建成功

  5. 点击调试:启动调试-继续

  6. 观察左下角输出:应该为两行分别是字符串

    hello,world!-1

    hello,world!-2

  7. 更为详细的步骤如下

  8. (1)运行软件,根据实验内容的描述,编写实验程序
    在已有实验程序的情况下选择:打开一工程一helloworld(文件目录)一.project
    (2)双击"helloworld"(文件名),屏幕显示源文件内容。使用“生成”菜单中“构建或重新构建〞选项,对实验程序进行汇编、连接。
    (3)选“启动调试",在状态栏显示程序编译、连接、传送整个过程的相关信息,汇编、连接、传送无误的话光标移至源文件中的START(程序的开始位置)
    (4)在“调试〞菜单中点击“开始调试”。进入调试环境,根据自己的要求选择调试操作,观察调试过程中,指令执行情况,包括各寄存器及数据区内容的变化。我们选择“继续”操作,就是连续的运行程序。
    (5)更改数据区中的数据,考察程序的正确性

 五、实验结论与总结

  1. dos功能调用的功能号存放在AH寄存器中;2号功能要显示的字符存放在DL寄存器中;使用9号功能时字符串的偏移地址存放在DX寄存器中,段地址默认由DS寄存器制定,且字符串必须由$符号结尾。
  2. 通过使用2号功能和9号功能来进行字符和字符串的输出,如果用2号功能进行字符串的输出需要使用循环。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值