汇编实验五

第一题

运行截图如下

答案如下

第二题

运行截图如下

答案如下

第三题

运行截图如下

答案如下

第四题

第一二两题中的代码不能运行,出现如下情况


但第三题可以正常执行,没有区别

第五题

assume cs:code
a segment
  db 1,2,3,4,5,6,7,8
a ends

b segment
  db 1,2,3,4,5,6,7,8
b ends

c1 segment   ; 在集成软件环境中,请将此处的段名称由c→改为c1或其它名称
  db 8 dup(0)
c1 ends	    ; 改的时候要成对一起修改
code segment
start:
       ;?
       mov ax,a
       mov ds,ax
       mov ax,b
       mov ss,ax
       mov ax,c1
       mov es,ax
       
       mov bx,0
       mov cx,8
	s:	mov ax,ds:[bx]
		add ax,ss:[bx]
		mov es:[bx],ax
		
		add bx,1
		
		loop s
		
		mov ax,4c00h
		int 21h
       
code ends
end start

相加前的c:

相加后的c:

第六题

额,这个栈逆序容我再研究研究,masm编译有错,先贴个半成品,把思路摆出来

最后是注意点

dosbox里面用masm和link的时候,都可以像 “ masm t1; ” 这样把文件后缀名省掉,不过在debug的时候,像 “ debug t1 ” 就会出错(如下图,提示什么“ extend error 2 ”),必须把“ .exe ”的后缀名带上才行

原文地址:https://www.cnblogs.com/MrWang-nextdoor/p/10012956.html