实验二 汇编语言程序设计基础

寻址方式

已知数据段定义如下

DA_BYTE DB ?

V1 DB 22H

V2 DB 33H

MS DB 'ABCDEFG'

(1)将数据指令组合成完整程序,运行前写出下列语句中源操作数和目录操作数的寻址方式,以及目的操作数的值。然后运行程序,记录目的操作数的值,验证分析结果。

MOV CL,50H ;寄存器,立即

MOV SS,AX ;寄存器,寄存器

MOV CX,50H ;寄存器,立即

MOV DA_BYTE,2AH ;直接,立即

MOV DS,AX ;寄存器,寄存器

MOV SI,OFFSET V1 ;寄存器,立即

MOV SI,AX ;寄存器间接,寄存器

MOV DX,CS ;寄存器,寄存器

MOV DI,2 ;寄存器,立即

MOV AL,MSDI ;寄存器,相对

MOV BX,1 ;寄存器,立即

MOV AL,MSBXDI ;寄存器,相对基址变址

(2)指出下列指令中的错误,并说明原因。修改指令,并执行指令观察结果。

MOV AH,BX ;数据类型不匹配

MOV V1,V2 ;不能两个内存数

MOV ES,2000H ;段寄存器不能直接传送立即数

MOV BX,OFFSET V2 ;正确

MOV DA_BYTE,BX ;不能两个内存数

MOV CS,AX ;CS不能是目的操作数

MOV DI,OFFSET V1 ;正确

MOV DI,50H ;两个操作数的数据类型不明确

MOV DS,ES ;不能两个都是段寄存器

相关推荐
白杨尚青11 分钟前
C++进阶篇(二):多态——虚函数、重写、虚函数表与三个经典坑(附完整代码仓库)
开发语言·c++·多态·虚函数·重写·动态绑定
WJ.Polar18 小时前
Java封装、继承、多态
java·开发语言
摇滚侠18 小时前
Java 中如何表示负数,有符号和无符号的区别,补码的计算规则,char byte short int long 的范围
java·开发语言
weixin_3077791318 小时前
C++代码实现MATLAB中的fitrtree函数功能
开发语言·c++·算法·matlab
Uncertainty!!19 小时前
Windows 10 与 Ubuntu 22.04 通过 Samba 共享文件夹
windows·ubuntu·共享文件夹
爱读书的小胖19 小时前
Codewars:Rot13(C)解题分析
c语言·开发语言
鸽鸽程序猿19 小时前
【项目】【在线判题系统】b端题目增删改
开发语言·python
Lhappy嘻嘻19 小时前
读懂 JVM:内存模型、类加载机制、分代回收
java·开发语言·jvm
en.en..20 小时前
汇编与 C 语言 互调用
汇编
weixin_3077791320 小时前
C++代码实现MATLAB中的spectralcluster函数功能
开发语言·c++·算法·matlab