前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >汇编语言程序设计:用vscode配置环境,简单命令

汇编语言程序设计:用vscode配置环境,简单命令

作者头像
姓王者
发布2025-03-24 10:28:36
发布2025-03-24 10:28:36
10100
代码可运行
举报
文章被收录于专栏:姓王者的博客姓王者的博客
运行总次数:0
代码可运行

试了一下,老师发的那个用起来真不习惯,但老师说可以自行配置编译环境,能跑就行

配置编译环境

所以我想到了vscode,可以在vscode插件列表里找到相关的插件masm-tasm

2025-03-23-164031
2025-03-23-164031

要改一下这个插件的设置

改这两项就行了

简单的命令操作

指令类型

指令

原始词

功能描述

内存操作

D

Display/Dump

查看内存内容

内存操作

E

Edit

修改内存内容

反汇编

U

Unassemble

机器码转汇编

执行控制

G

Go

运行程序

执行控制

T

Trace

单步执行程序

寄存器操作

R

Register

查看或修改寄存器

寄存器

原始词

描述

AX

Accumulator

数据存储与运算(累加器)

BX

Base

数据存储与运算(基址寄存器)

CX

Counter

数据存储与运算(计数器寄存器)

DX

Data

数据存储与运算(数据寄存器)

内存操作指令

1. 查看内存(D 指令,Dump)

命令行会话​:

代码语言:javascript
代码运行次数:0
运行
复制
; 启动Debug后默认进入提示符
-d 100        ; 输入命令:查看地址100开始的内存
0B8D:0100  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0B8D:0110  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................

说明​:

  • dDump 的缩写
  • 输出格式:段地址:偏移地址 数据(十六进制)- ASCII码表示
2. 修改内存(E 指令,Enter)

命令行会话​:

代码语言:javascript
代码运行次数:0
运行
复制
-e 100 41 42 43  ; 输入命令:向地址100写入A(41)、B(42)、C(43)
-d 100            ; 再次查看验证
0B8D:0100  41 42 43 00 00 00 00 00-00 00 00 00 00 00 00 00  ABC.............

说明​:

  • eEnter 的缩写
  • 可连续输入多个字节(空格分隔)

二、反汇编指令

3. 机器码转汇编(U 指令,Unassemble)

命令行会话​:

代码语言:javascript
代码运行次数:0
运行
复制
-a 100           ; 先用A指令写入汇编代码
0B8D:0100 mov ax, 1234
0B8D:0103 add ax, bx
0B8D:0105 int 21h
-u 100           ; 输入命令:反汇编地址100的代码
0B8D:0100 B83412        MOV     AX,1234
0B8D:0103 01D8          ADD     AX,BX
0B8D:0105 CD21          INT     21

说明​:

  • uUnassemble 的缩写
  • 反汇编结果显示机器码(十六进制)和对应的汇编指令

三、执行控制指令

4. 运行程序(G 指令,Go)

命令行会话​:

代码语言:javascript
代码运行次数:0
运行
复制
-r ax            ; 查看初始AX值
AX=0000
-g=100 105       ; 输入命令:从100运行到105(断点)
AX=1234          ; 运行后AX的值

说明​:

  • gGo 的缩写
  • 格式:g=起始地址 结束地址=可省略
5. 单步执行(T 指令,Trace)

命令行会话​:

代码语言:javascript
代码运行次数:0
运行
复制
-t              ; 输入命令:执行当前IP指向的指令
AX=1234  IP=0103  ; 执行完MOV AX,1234后,IP指向下一条指令
-t              ; 再次单步执行
AX=1234+BX值  IP=0105  ; 执行ADD AX,BX

说明​:

  • tTrace 的缩写
  • 每执行一条指令,自动显示寄存器变化

四、寄存器操作指令

6. 修改寄存器(R 指令,Register)

命令行会话​:

代码语言:javascript
代码运行次数:0
运行
复制
-r bx           ; 输入命令:查看并修改BX寄存器
BX=0000
:1122          ; 输入新值(十六进制)
-r             ; 查看所有寄存器
AX=1234  BX=1122  CX=0000  DX=0000  ...

说明​:

  • rRegister 的缩写
  • 直接输入r显示所有寄存器,输入r 寄存器名可修改指定寄存器

五、完整调试流程示例

目标​:计算 1234h + 5678h 并存入 AX ​命令行会话​:

代码语言:javascript
代码运行次数:0
运行
复制
; 1. 写入汇编代码
-a 100
0B8D:0100 mov ax, 1234
0B8D:0103 mov bx, 5678
0B8D:0106 add ax, bx
0B8D:0108 hlt

; 2. 反汇编验证
-u 100
0B8D:0100 B83412        MOV     AX,1234
0B8D:0103 BB7856        MOV     BX,5678
0B8D:0106 01D8          ADD     AX,BX
0B8D:0108 F4            HLT

; 3. 单步执行
-t 4                  ; 执行4条指令(含HLT)
AX=68AC              ; 结果:1234+5678=68AC

注意​:

  1. 命令行提示符为-(Debug 工具默认)
  2. 十六进制数无需加后缀(默认十六进制)
  3. Enter键执行命令,按Ctrl+C退出 Debug
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置编译环境
  • 简单的命令操作
    • 内存操作指令
      • 1. 查看内存(D 指令,Dump)
      • 2. 修改内存(E 指令,Enter)
    • 二、反汇编指令
      • 3. 机器码转汇编(U 指令,Unassemble)
    • 三、执行控制指令
      • 4. 运行程序(G 指令,Go)
      • 5. 单步执行(T 指令,Trace)
    • 四、寄存器操作指令
      • 6. 修改寄存器(R 指令,Register)
    • 五、完整调试流程示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档