Assembly YASM如何从内存字段中提取
我正在用ebe用YASM做汇编语言。我完全迷失在这个实验室里: 第五个实验室练习要求您对标准日期进行编码 MS-DOS功能57h的字段提取器。请创建一个文件 在ebe(或您选择的任何文本编辑器)中命名为date.asm 问题1-日期提取 当存储空间非常宝贵时,系统级软件通常会打包 将多个数据字段转换为单个整数。为了揭示这些数据, 应用程序通常需要提取称为位的位序列 串。例如,在实地址模式下,MS-DOS功能为57h 以DX格式返回文件的日期戳。(日期戳显示日期 位(到4表示一天) 介于1和31之间的数字,第5位到第8位是月数,并且 第9位到第15位保存年份号(年份号相对于 1980年) 给定以下代码段,您需要编写代码, 它从内存中提取年、月和日(按此顺序) 字段0x515E并将其保存在指定的内存位置。你是 仅允许使用DX和另一个16位寄存器(例如BX、CX) .asm代码段如下所示:Assembly YASM如何从内存字段中提取,assembly,x86,yasm,Assembly,X86,Yasm,我正在用ebe用YASM做汇编语言。我完全迷失在这个实验室里: 第五个实验室练习要求您对标准日期进行编码 MS-DOS功能57h的字段提取器。请创建一个文件 在ebe(或您选择的任何文本编辑器)中命名为date.asm 问题1-日期提取 当存储空间非常宝贵时,系统级软件通常会打包 将多个数据字段转换为单个整数。为了揭示这些数据, 应用程序通常需要提取称为位的位序列 串。例如,在实地址模式下,MS-DOS功能为57h 以DX格式返回文件的日期戳。(日期戳显示日期 位(到4表示一天) 介于1和31之
segment .data
t dw 0x515E
day dw 0
month db 0
year dw 1980
main:
xor EDX, EDX
mov DX, [t]
我是否应该通过将日、月、年移动到DX来实现这一点?比如:
segment .data
t dw 0x515E
day dw 0
month db 0
year dw 1980
main:
xor EDX, EDX
mov DX, [t]
mov DX, [day]
mov DX, [month]
mov DX, [year]