汇编语言实验1

  1. 写一个完整的8086汇编语言程序,从键盘输入自己的学号,在屏幕上显示“Hello,学号”。

例如输入:20200001

屏幕上显示:Hello,20200001

;Program:
;Author:
;Date:

.386
.MODEL FLAT

ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD

INCLUDE io.h            ; header file for input/output

cr      EQU     0dh     ; carriage return character
Lf      EQU     0ah     ; line feed

.STACK  4096            ; reserve 4096-byte stack

.DATA                   ; reserve storage for data
number DWORD ?
prompt BYTE  " Enter your student ID: ",0
prompt2 BYTE "Hello,",0
string BYTE 40 DUP (?)



.CODE                           ; start of main program code
_start:
        output prompt
        input string, 40
        atod  string
        mov  number, eax
        output prompt2
        output string


        INVOKE  ExitProcess, 0  ; exit with return code 0
PUBLIC _start                   ; make entry point public

END                             ; end of source code

2.

  1. 写一个完整的8086汇编语言程序,满足一下要求:
  1. 数据段申请一个存储数据的字长数据(一个长度为word的变量),该数据存储的值存储为FFFFH。
  2. 数据段申请一个存储数据的双字长数据(一个长度为dword的变量),该数据的值存储为50。
  3. 将上述数据的十进制显示在屏幕上。

(代码清单)

;Program:
;Author:
;Date:

.386
.MODEL FLAT

ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD

INCLUDE io.h            ; header file for input/output

cr      EQU     0dh     ; carriage return character
Lf      EQU     0ah     ; line feed

.STACK  4096            ; reserve 4096-byte stack

.DATA                   ; reserve storage for data
number1 word 0FFFFH
number2 dword 50
result1 BYTE 11 DUP(?)
result2 BYTE 11 DUP(?)
   

.CODE                           ; start of main program code
_start:
        itoa result1,number1
        dtoa result2,number2
        output result1
        output result2



        INVOKE  ExitProcess, 0  ; exit with return code 0
PUBLIC _start                   ; make entry point public

END                             ; end of source code

(运行结果截图)

3.

  1. 写一个完整的8086汇编语言程序,从键盘输入一串数字,将其转化为数值存储在EAX寄存器中。

例如键盘输入:59

Eax的值为59。利用windbg工具检查看eax寄存器的值,此时的值为16进制如下图所示。

 

(代码清单)

;Program:
;Author:
;Date:

.386
.MODEL FLAT

ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD

INCLUDE io.h            ; header file for input/output

cr      EQU     0dh     ; carriage return character
Lf      EQU     0ah     ; line feed

.STACK  4096            ; reserve 4096-byte stack

.DATA                   ; reserve storage for data
number dword ?
string BYTE 40 DUP(?)


.CODE                           ; start of main program code
_start:
       input string,40
       atod string
       mov number,eax


        INVOKE  ExitProcess, 0  ; exit with return code 0
PUBLIC _start                   ; make entry point public

END                             ; end of source code

(windbg结果截图)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值