whiteblossoms

导航

实验1 8086汇编指令编码和调试

实验任务2

修改无效,可能因为ROM是只读存储器,无法直接修改

实验任务3

  • e命令以及f命令修改内存单元

  • 尝试修改内存单元

实验任务4

  • 填空

    push[0] (sp)= 002E
    push[2] (sp)= 002C
    push[4] (sp)= 002A
    push[6] (sp)= 0028
    pop [6] (sp)= 002A
    pop [4] (sp)= 002C
    pop [2] (sp)= 002E
    pop [0] (sp)= 0030
    
  • 回答问题

    1、逻辑地址:0020:30H 物理地址:00230H
    2、执行到pop前的栈

    3、执行后

    4、将pop顺序反转后

实验任务5

  1. 没有暂停,紧接着执行mov sp 30
  2. 黄色下划线部分是下一条指令的地址,t指令单步调试触发了中断,栈里保存了一些现场数据

实验任务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,0200h
     	mov es,ax
     	mov bx,0
     	mov cx,17h
     	s: mov al,[bx]
     	    mov es:[bx],al
     	   inc bx
     	   loop s
     	mov ax,4c00h
     	int 21h
    
    
     code ends
     end
    
    

    第一空依据:将命令的起始地址给到段寄存器,cs是代码段起始地址
    第二空依据:cx就是循环次数设置,根据下图可以看到mov ax,4c00地址偏移为17h,而起始偏移为00h,故cx赋值17h

  • 程序的测试

posted on 2021-10-28 11:46  whiteblossoms  阅读(22)  评论(3编辑  收藏  举报