实验1 8086汇编指令编码和调试
实验任务2
C:\>debug -d fff0:0 ff
-e ffff:0 00 -d fff0:0 ff
结论:无法更改,C0000-FFFFF空间为各类rom地址空间,为只读。
实验任务3
-e b800:0 03 04 03 04 03 04 03 04 03 04
-f b800:0f00 0f9f 03 04
实验任务4
填空:2e 2c 2a 28 2a 2c 2e 30
问题1:逻辑地址0020:30 物理地址00230
问题2:
问题3:
问题4:数据有变化,存储顺序改变
实验任务5
问题1:未暂停;mov sp,30指令在mov ss,ax之后立刻执行。
问题2:IP和CS寄存器初始地址为0020:002a 002b及0020:002c 002d;随着数据存入该内存空间后,IP和CS寄存器的地址逐渐减小。
实验任务6
assume cs:code code segment start: mov cx, 10 mov dl, '0' s: mov ah, 2 int 21h add dl, 1 loop s mov ah, 4ch int 21h code ends end start
实验任务7
assume cs:code code segment mov ax, cs mov ds, ax mov ax, 0020h mov es, ax mov bx, 0 mov cx, 17 s: mov al, [bx] mov es:[bx], al inc bx loop s mov ax,4c00H int 21H code ends end
第一空:根据程序第九行的mov al, [bx]判断除ds应该存储程序的起始位置的段地址,即cs;故将cs赋值给ax。
第二空:cx为循环次数,循环次数应为代码总长度减去mov ax,4c00H以后的代码长度;即cx-5; 代码总长度为001c, 故cx-5应为17
实验总结
1.8086CPU中,栈顶位于高地址,出栈后栈顶值-2。
2.不同指令在内存中占据不同字节数。