(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) |
浏览次数(395) |
所属类型(汇编作业)
[2011-12-03 19:33] 第五章 【bx】和loop指令
(1)【bx】指段地址默认在ds中,偏移地址默认在寄存器bx中;(bx)指寄存器bx中得内容;
(2)cpu执行loop指令时,需要执行两步操作:1,(cx)=(cx)-1
2,判断cx的值,如果不为0,则执行标号处的程序,如果为0,则继续执行下面的程序;
(3)masm中16进制数大于9fff的数字,第一位加0表示,如0fff0h;
(4)debug中int 21h 要用p命令执行;
(5)debug中g (ip),指程序执行到(ip)的地址为止;
(6)debug中p 命令可以将loop 标号 执行到(cx)=0为止;
(7)masm中mov ax,【1】,标志将1放到a...
(2)cpu执行loop指令时,需要执行两步操作:1,(cx)=(cx)-1
2,判断cx的值,如果不为0,则执行标号处的程序,如果为0,则继续执行下面的程序;
(3)masm中16进制数大于9fff的数字,第一位加0表示,如0fff0h;
(4)debug中int 21h 要用p命令执行;
(5)debug中g (ip),指程序执行到(ip)的地址为止;
(6)debug中p 命令可以将loop 标号 执行到(cx)=0为止;
(7)masm中mov ax,【1】,标志将1放到a...
阅读全文 |
评论次数(2) |
浏览次数(471) |
所属类型(每章知识点)
[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) |
浏览次数(428) |
所属类型(汇编作业)
[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) |
浏览次数(415) |
所属类型(汇编作业)
[2011-11-30 12:03] 第三章检测题中的一小题的疑问:mov ah,0 是清空还是ah置0呢?
能够只将al中的内容压入栈的指令序列是__3___。
1、 push al
2、 pop ax
3、 mov ah,0
push ax
4、 mov ax,0
push
答案选择3,指令mov ah,0的意思是将寄存器ah置0还是清空呢?
如果是置0,那么执行压栈操作,0肯定会入栈,就不单纯把al压栈了
如果是清空,那么3正确,如果是这样的话mov ax,0到底是传送0到ax中还是将ax清空呢?
实验mov ax,0 push ax 发现是将ax中得0压栈了,说明mov ax,0是传送指令,并没有将ax清空
...
1、 push al
2、 pop ax
3、 mov ah,0
push ax
4、 mov ax,0
push
答案选择3,指令mov ah,0的意思是将寄存器ah置0还是清空呢?
如果是置0,那么执行压栈操作,0肯定会入栈,就不单纯把al压栈了
如果是清空,那么3正确,如果是这样的话mov ax,0到底是传送0到ax中还是将ax清空呢?
实验mov ax,0 push ax 发现是将ax中得0压栈了,说明mov ax,0是传送指令,并没有将ax清空
...
阅读全文 |
评论次数(1) |
浏览次数(354) |
所属类型(每章疑问)
[2011-11-30 11:30] 实验2 第二题 思考?
(2)仔细观察图3.19中的实验过程,然后分析:为什么2000:0~2000:F中的内容会发生改变?
1000:003D mov sp,10
1000:0040 mov ax,3123
1000:0043 push ax
1000:0044 mov ax,3366
1000:0047 push 3366
^ Error
1000:0047 push ax
1000:0048
-e 2000:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-d 2000:0 f
2000:00...
1000:003D mov sp,10
1000:0040 mov ax,3123
1000:0043 push ax
1000:0044 mov ax,3366
1000:0047 push 3366
^ Error
1000:0047 push ax
1000:0048
-e 2000:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-d 2000:0 f
2000:00...
阅读全文 |
评论次数(1) |
浏览次数(386) |
所属类型(每章疑问)
[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) |
浏览次数(447) |
所属类型(汇编作业)
[2011-11-30 10:37] 第三章(2)栈的综述
(1)8086CPU提供栈操作机制,方案如下:
在ss,sp中存放栈的段地址和偏移地址;
提供入栈和出栈指令,根据ss:sp指示的地址,按照栈的方式访问内存单元;
(2)push指令执行过程:1,sp=sp-2 2,向ss:sp指向的字单元中放入数据;
(3)pop指令执行过程:1,根据ss:sp地址读取数据2,sp=sp+2;
(4)任意时刻,ss:sp指向栈顶元素,栈的大小我们自己决定;...
在ss,sp中存放栈的段地址和偏移地址;
提供入栈和出栈指令,根据ss:sp指示的地址,按照栈的方式访问内存单元;
(2)push指令执行过程:1,sp=sp-2 2,向ss:sp指向的字单元中放入数据;
(3)pop指令执行过程:1,根据ss:sp地址读取数据2,sp=sp+2;
(4)任意时刻,ss:sp指向栈顶元素,栈的大小我们自己决定;...
阅读全文 |
评论次数(1) |
浏览次数(458) |
所属类型(每章知识点)
[2011-11-29 12:48] 日日行,不怕千万里;时时学,不怕千万卷
日日行走,千里万里也能走完;天天学习,万卷书也能看完,
持之以恒的态度,真的很可贵!...
持之以恒的态度,真的很可贵!...
阅读全文 |
评论次数(1) |
浏览次数(417) |
所属类型(随笔)
[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) |
浏览次数(297) |
所属类型(汇编作业)
『 查看更多文章 』