(1)下面的程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,完成程序:
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
start: mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s: mov ax,[bx]
mov cs:[bx],ax
add bx,2
loop ...


- [tomato] 对的。 12/18 21:17
- [mywiil] 对于加“0”与否,只要你回答一下如下问题,就知道本质了: mov al,dh 你能知道dh是16禁 12/08 10:28
- [zwhling] 恩,多谢,如果大于256应该就出现问题了 12/04 14:38
- [tomato] 博主总结地不错,不过有个小问题,“(3)masm中16进制数大于9fff的数字,第一位加0表示,如0 12/03 21:01
- [tomato] 第一个程序题有个细节问题,数据存放的是字节,应该用8位寄存器,如果用16位寄存器会有问题。虽然针对这 12/03 20:53
- [tomato] 都能写入,只是,显存中的内容还没显示出来别的程序已经将显存中的内容覆盖掉了。 11/30 18:43
- [tomato] 这个理论上没问题,只是跟debug环境有关系。具体也不知。 11/30 18:42
- [tomato] 这个很重要,一定要注意栈的操作顺序。 11/30 18:38
- [tomato] 做对了。 11/30 18:37
- [tomato] 可以学到中断章节再看。 11/30 18:37
- [tomato] 最近怎么不见博主学习了?问候一下,不要轻易放弃哦! 02/11 23:23
[2011-12-18 16:23] 检测点6.1
阅读全文 |
评论次数(1) |
浏览次数(577) |
所属类型(汇编作业)
[2011-12-03 17:16] 实验四 【bx】和loop的使用
(1)(2) 编程,向内存0:200~0:23f依次传递数据0~63(3fh)。
assume cs:code
code segment
mov ax,20h
mov ds,ax
mov bx,0
mov cx,64
s: mov [bx],bx
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
(3)下面的程序功能是将“mov ax,4c00h"之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。
...
assume cs:code
code segment
mov ax,20h
mov ds,ax
mov bx,0
mov cx,64
s: mov [bx],bx
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
(3)下面的程序功能是将“mov ax,4c00h"之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。
...
阅读全文 |
评论次数(2) |
浏览次数(474) |
所属类型(汇编作业)
[2011-11-30 16:43] 实验3
E:\masm>debug 2.exe
-r
AX=0000 BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0B57 ES=0B57 SS=0B67 CS=0B67 IP=0000 NV UP EI PL NZ NA PO NC
0B67:0000 B80020 MOV AX,2000
-t
AX=2000 BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0B57 ES=0...
-r
AX=0000 BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0B57 ES=0B57 SS=0B67 CS=0B67 IP=0000 NV UP EI PL NZ NA PO NC
0B67:0000 B80020 MOV AX,2000
-t
AX=2000 BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0B57 ES=0...
阅读全文 |
评论次数(1) |
浏览次数(470) |
所属类型(汇编作业)
[2011-11-30 11:18] 实验2 用机器指令和汇编指令编程
(1)使用DEBUG,将上面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。
-r
AX=3366 BX=0000 CX=0000 DX=0000 SP=000C BP=0000 SI=0000 DI=0000
DS=1000 ES=0B0A SS=2000 CS=1000 IP=0010 NV UP EI PL NZ NA PO NC
1000:0010 0000 ADD [BX+SI],AL DS:0000=B8
-a
1000:0010 mov ax,ff...
-r
AX=3366 BX=0000 CX=0000 DX=0000 SP=000C BP=0000 SI=0000 DI=0000
DS=1000 ES=0B0A SS=2000 CS=1000 IP=0010 NV UP EI PL NZ NA PO NC
1000:0010 0000 ADD [BX+SI],AL DS:0000=B8
-a
1000:0010 mov ax,ff...
阅读全文 |
评论次数(1) |
浏览次数(474) |
所属类型(汇编作业)
[2011-11-29 12:39] 检测点3.2
(1)补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20000H-2000FH中。
mov ax,1000H
mov ds,ax
mov ax,2000H
mov ss,ax
mov sp,10h
push [0]
push [2]
push [4]
push [6]
push [8]
push [A]
push [C]
push [E]
(2)补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20...
mov ax,1000H
mov ds,ax
mov ax,2000H
mov ss,ax
mov sp,10h
push [0]
push [2]
push [4]
push [6]
push [8]
push [A]
push [C]
push [E]
(2)补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20...
阅读全文 |
评论次数(1) |
浏览次数(324) |
所属类型(汇编作业)
[2011-11-29 10:30] 检测点3.1
(1) 在DEBUG中,用 "D 0:0 lf" 查看内存,结果如下:
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值
mov ax,1
mov ds,ax
mov ax,[0000] ax= 2662H
mov bx,[0001] bx= E626H
mo...
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值
mov ax,1
mov ds,ax
mov ax,[0000] ax= 2662H
mov bx,[0001] bx= E626H
mo...
阅读全文 |
评论次数(1) |
浏览次数(193) |
所属类型(汇编作业)
[2011-11-27 17:55] 第二章(4)实验
(1)使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器中内容的变化。
机器码 汇编指令 寄存器
b8 20 4e mov ax,4E20H ax=4E20H
05 16 14 add ax,1416H ax=6236H
bb 00 20 mov BX,2000H bx=2000H
01 d8 add ax,bx ax=8236H
89 c3 mov bx,ax bx=8...
机器码 汇编指令 寄存器
b8 20 4e mov ax,4E20H ax=4E20H
05 16 14 add ax,1416H ax=6236H
bb 00 20 mov BX,2000H bx=2000H
01 d8 add ax,bx ax=8236H
89 c3 mov bx,ax bx=8...
阅读全文 |
评论次数(6) |
浏览次数(297) |
所属类型(汇编作业)
[2011-11-27 12:06] 检测点2.3
下面的3条指令执行后,cpu几次修改IP?都是在什么时候?最后IP中的值是多少?
mov ax,bx 第一次
sub ax,ax 第二次
jmp ax 第三次,第四次IP被修改为ax中得内同,即0.
答:4次 最后IP中 得值为0。...
mov ax,bx 第一次
sub ax,ax 第二次
jmp ax 第三次,第四次IP被修改为ax中得内同,即0.
答:4次 最后IP中 得值为0。...
阅读全文 |
评论次数(6) |
浏览次数(197) |
所属类型(汇编作业)
[2011-11-26 17:43] 检测点2.2
(1) 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为 () 到 () ?
答:偏移地址寻址范围是0-ffffH,则段地址为0001H的寻址范围为00010H~~00010H+ffffH=1000FH.
(2) 有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为(),最大为()?
答:据公式物理地址=段地址*16+ea
则20000H=SA*16+EA,SA=(20000H-EA)/16 EA的寻址范围为0H~ffffH,则EA取0时,SA得最大值2000H;当EA取ffffH时,...
答:偏移地址寻址范围是0-ffffH,则段地址为0001H的寻址范围为00010H~~00010H+ffffH=1000FH.
(2) 有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为(),最大为()?
答:据公式物理地址=段地址*16+ea
则20000H=SA*16+EA,SA=(20000H-EA)/16 EA的寻址范围为0H~ffffH,则EA取0时,SA得最大值2000H;当EA取ffffH时,...
阅读全文 |
评论次数(2) |
浏览次数(190) |
所属类型(汇编作业)
[2011-11-25 16:49] 检测点 2.1
(1) 写出每条汇编指令执行后相关寄存器中的值。
mov ax,62627 AX=F4A3H
mov ah,31H AX=31A3H
mov al,23H AX=3123H
add ax,ax AX=6246H
mov bx,826CH BX=826CH
mov cx,ax CX=6246H
mov ax,bx AX=826CH
add ax,bx AX=04D8H
mov al,bh AX=0482H
mov ah,bl AX...
mov ax,62627 AX=F4A3H
mov ah,31H AX=31A3H
mov al,23H AX=3123H
add ax,ax AX=6246H
mov bx,826CH BX=826CH
mov cx,ax CX=6246H
mov ax,bx AX=826CH
add ax,bx AX=04D8H
mov al,bh AX=0482H
mov ah,bl AX...
阅读全文 |
评论次数(5) |
浏览次数(181) |
所属类型(汇编作业)