汝不知者花也 发表于 2020-6-15 10:02:12

问题3.3 3.4

本帖最后由 汝不知者花也 于 2020-6-15 10:17 编辑

三、字的传送
问题:3.3

10000H         23
10001H         11
10002H         22
10003H         66


命令为-e 1000:0 23 11 22 66        //先将段地址数据放入 1000:0中


命令为-d 1000:0 3                         //查询地址是否输入正确


命令为-a 073f:100                        //以汇编的模式写入指令在073f:100中


mov ax,1000H        //将1000:0中的数据送入ax中,由于ax为16位 所以现有将01和02中的数据送入即可得到 ax是1000H
mov ds,ax                //将ax的输入送入段地址寄存器ds中 即ds是1000H
mov ax,                //表示偏移地址,和前面ds结合可知地址为1000:0 将1000:0和1中的地址送入ax 可得ax为1123H
mov bx,        //表示偏移地址,和前面ds结合可知地址为1000:2 将1000:2和3中的地址送入bx 可得bx为6622H
mov cx,                //表示偏移地址,和前面ds结合可知地址为1000:1 将1000:1和2中的地址送入cx 可得bx为2211H
add bx,                //表示偏移地址,和前面ds结合可知地址为1000:1 将bx和相加 已知bx为6622H 为2211 即 2211H+6622H 可得bx为8833H
add cx,                //表示偏移地址,和前面ds结合可知地址为1000:2 将bx和相加 已知cx为6622H 为6622 即 2211H+6622H 可得cx为8833H



问题:3.4

10000H        23
10001H        11
10002H        22
10003H         11


命令为-e 1000:0 23 11 22 11        //先将段地址数据放入 1000:0中

命令为-d 1000:0 3                         //查询地址是否输入正确

命令为-a 073f:100                        //以汇编的模式写入指令在073f:100中

mov ax,1000H                //将1000:0中的数据送入ax中,由于ax为16位 所以现有将01和02中的数据送入即可得到 ax是1000H
mov ds,ax                        //将ax的输入送入段地址寄存器ds中 即ds是1000H
mov ax,11316                //将十进制的11316转化为16进制可得2c34
mov ,ax                        //将ax的值送入1000:0中 即ax为2c34
mov bx,                //将的值送入bx中 即bx为2c34
sub bx,                        //将bx=bx- 即 可得2c34-1122得1b12
mov ,bx                //将bx的值送入1000:2中 即1000:2为1b12





^蓝色风暴 发表于 2020-7-27 12:33:55

?

汝不知者花也 发表于 2020-7-28 08:34:55

^蓝色风暴 发表于 2020-7-27 12:33
?

有什么问题吗

^蓝色风暴 发表于 2020-7-29 15:51:05

汝不知者花也 发表于 2020-7-28 08:34
有什么问题吗

答案bx和cx混淆了

lz5215560 发表于 2021-3-23 17:32:32

3.4这题目的不是看 1000:0 3 中数据的变化吗
1000:0 34 2c 12 1b
页: [1]
查看完整版本: 问题3.3 3.4