Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 蛇形组件8086:未正确移动 .小型模型 .数据 ;蛇身所需的变量 总目数据库“@”和“$”;头部和身体符号 尾数据库“”,“$”;尾部设置颜色为黑色 蛇的长度为3分贝;1-2体3尾 复制长度为db;for循环 发送数据库? 总目40;蛇的起点 头排db 12;蛇行 ; 蛇运动算法 ; 始终复制前面符号的坐标。 拷贝到数据库? 复制第二行? 延迟时间分贝1 ;控制键的变量 输入分贝? .烟囱100小时 .代码 ;拖延时间 延迟过程 mov啊,00 int 1Ah mov bx,dx jmp_延迟: int 1Ah 子dx,bx 延迟时间 jl jmp_延迟 ret 延迟端 ;让蛇头向右走 右转程序 凸轮轴位置传感器,79 我重新定位 零: 公司总经理 jmp rightyie 重置POSL: 动压头柱,0 对: mov dl,头颈部 mov dh,头排 异或波黑,波黑 mov啊,02h int 10h ret 右端 StartName程序 mov-dh,12;一行 mov-dl,40;柱 异或波黑,波黑 mov啊,02h int 10h 偏置磁头 mov啊,09h int 21h ret 起始名称 mov cl,首行 mov副本行,cl mov cl,头颈部 影印副本 ;打印头 mov dh,头排 mov dl,头颈部 异或波黑,波黑 mov啊,02h int 10h 偏置磁头 mov啊,09h int 21h 主进程 mov-ax,@data mov-ds,ax ;设置视频模式 莫夫艾尔,03h mov啊,00h int 10h ;清屏 ;只需要一次(原因不需要使用函数) mov ax,0600h 莫夫波黑,07h 异或 莫夫dx,184fh int 10h mov-cx,3200h;停止光标闪烁 mov-ah,01h int 10h ;在屏幕中部设置起始头蛇 给我打电话 ;控制 mov啊,00h int 16h mov输入'd' ;改变方向或继续前进 获取输入: mov-ah,01h int 16h jz键 mov啊,00h int 16h mov输入,al ;控制键 关键: ;cmp输入,“w” ;je w ;cmp输入“s” ;日本脑炎 ;cmp输入,“a” ;乙脑a cmp输入'd' 杰德 jne rak d: mov cl,首行 mov副本行,cl mov cl,头颈部 影印副本 mov dh,头排 mov dl,头颈部 异或波黑,波黑 mov啊,02h int 10h 尾巴 莫夫波黑,0 mov bl,000h mov cx,1 mov啊,09h int 10h 移动cl,蛇形长度 mov拷贝长度,cl 12月拷贝长度 mov bl,0 打印体: mov al,头排 影印拷贝行,al 莫夫·阿尔,头目 影印本 马上打电话 ;打印头 ;协调 mov dh,头排 mov dl,头颈部 异或波黑,波黑 mov啊,02h int 10h ;打印“@” 偏置磁头 mov啊,09h int 21h ; inc copy_col更新头部。 复制公司 mov al,复印件 莫夫·海德·科尔,艾尔 有限公司 ; 现在循环打印其他字符 cmp bl,复制长度 jl打印体 12月1日 jmp-rak rak: 呼叫延迟 jmpgetInput mov-ax,4c00h int 21h 主端 端干管_Assembly_X86 16 - Fatal编程技术网

Assembly 蛇形组件8086:未正确移动 .小型模型 .数据 ;蛇身所需的变量 总目数据库“@”和“$”;头部和身体符号 尾数据库“”,“$”;尾部设置颜色为黑色 蛇的长度为3分贝;1-2体3尾 复制长度为db;for循环 发送数据库? 总目40;蛇的起点 头排db 12;蛇行 ; 蛇运动算法 ; 始终复制前面符号的坐标。 拷贝到数据库? 复制第二行? 延迟时间分贝1 ;控制键的变量 输入分贝? .烟囱100小时 .代码 ;拖延时间 延迟过程 mov啊,00 int 1Ah mov bx,dx jmp_延迟: int 1Ah 子dx,bx 延迟时间 jl jmp_延迟 ret 延迟端 ;让蛇头向右走 右转程序 凸轮轴位置传感器,79 我重新定位 零: 公司总经理 jmp rightyie 重置POSL: 动压头柱,0 对: mov dl,头颈部 mov dh,头排 异或波黑,波黑 mov啊,02h int 10h ret 右端 StartName程序 mov-dh,12;一行 mov-dl,40;柱 异或波黑,波黑 mov啊,02h int 10h 偏置磁头 mov啊,09h int 21h ret 起始名称 mov cl,首行 mov副本行,cl mov cl,头颈部 影印副本 ;打印头 mov dh,头排 mov dl,头颈部 异或波黑,波黑 mov啊,02h int 10h 偏置磁头 mov啊,09h int 21h 主进程 mov-ax,@data mov-ds,ax ;设置视频模式 莫夫艾尔,03h mov啊,00h int 10h ;清屏 ;只需要一次(原因不需要使用函数) mov ax,0600h 莫夫波黑,07h 异或 莫夫dx,184fh int 10h mov-cx,3200h;停止光标闪烁 mov-ah,01h int 10h ;在屏幕中部设置起始头蛇 给我打电话 ;控制 mov啊,00h int 16h mov输入'd' ;改变方向或继续前进 获取输入: mov-ah,01h int 16h jz键 mov啊,00h int 16h mov输入,al ;控制键 关键: ;cmp输入,“w” ;je w ;cmp输入“s” ;日本脑炎 ;cmp输入,“a” ;乙脑a cmp输入'd' 杰德 jne rak d: mov cl,首行 mov副本行,cl mov cl,头颈部 影印副本 mov dh,头排 mov dl,头颈部 异或波黑,波黑 mov啊,02h int 10h 尾巴 莫夫波黑,0 mov bl,000h mov cx,1 mov啊,09h int 10h 移动cl,蛇形长度 mov拷贝长度,cl 12月拷贝长度 mov bl,0 打印体: mov al,头排 影印拷贝行,al 莫夫·阿尔,头目 影印本 马上打电话 ;打印头 ;协调 mov dh,头排 mov dl,头颈部 异或波黑,波黑 mov啊,02h int 10h ;打印“@” 偏置磁头 mov啊,09h int 21h ; inc copy_col更新头部。 复制公司 mov al,复印件 莫夫·海德·科尔,艾尔 有限公司 ; 现在循环打印其他字符 cmp bl,复制长度 jl打印体 12月1日 jmp-rak rak: 呼叫延迟 jmpgetInput mov-ax,4c00h int 21h 主端 端干管

Assembly 蛇形组件8086:未正确移动 .小型模型 .数据 ;蛇身所需的变量 总目数据库“@”和“$”;头部和身体符号 尾数据库“”,“$”;尾部设置颜色为黑色 蛇的长度为3分贝;1-2体3尾 复制长度为db;for循环 发送数据库? 总目40;蛇的起点 头排db 12;蛇行 ; 蛇运动算法 ; 始终复制前面符号的坐标。 拷贝到数据库? 复制第二行? 延迟时间分贝1 ;控制键的变量 输入分贝? .烟囱100小时 .代码 ;拖延时间 延迟过程 mov啊,00 int 1Ah mov bx,dx jmp_延迟: int 1Ah 子dx,bx 延迟时间 jl jmp_延迟 ret 延迟端 ;让蛇头向右走 右转程序 凸轮轴位置传感器,79 我重新定位 零: 公司总经理 jmp rightyie 重置POSL: 动压头柱,0 对: mov dl,头颈部 mov dh,头排 异或波黑,波黑 mov啊,02h int 10h ret 右端 StartName程序 mov-dh,12;一行 mov-dl,40;柱 异或波黑,波黑 mov啊,02h int 10h 偏置磁头 mov啊,09h int 21h ret 起始名称 mov cl,首行 mov副本行,cl mov cl,头颈部 影印副本 ;打印头 mov dh,头排 mov dl,头颈部 异或波黑,波黑 mov啊,02h int 10h 偏置磁头 mov啊,09h int 21h 主进程 mov-ax,@data mov-ds,ax ;设置视频模式 莫夫艾尔,03h mov啊,00h int 10h ;清屏 ;只需要一次(原因不需要使用函数) mov ax,0600h 莫夫波黑,07h 异或 莫夫dx,184fh int 10h mov-cx,3200h;停止光标闪烁 mov-ah,01h int 10h ;在屏幕中部设置起始头蛇 给我打电话 ;控制 mov啊,00h int 16h mov输入'd' ;改变方向或继续前进 获取输入: mov-ah,01h int 16h jz键 mov啊,00h int 16h mov输入,al ;控制键 关键: ;cmp输入,“w” ;je w ;cmp输入“s” ;日本脑炎 ;cmp输入,“a” ;乙脑a cmp输入'd' 杰德 jne rak d: mov cl,首行 mov副本行,cl mov cl,头颈部 影印副本 mov dh,头排 mov dl,头颈部 异或波黑,波黑 mov啊,02h int 10h 尾巴 莫夫波黑,0 mov bl,000h mov cx,1 mov啊,09h int 10h 移动cl,蛇形长度 mov拷贝长度,cl 12月拷贝长度 mov bl,0 打印体: mov al,头排 影印拷贝行,al 莫夫·阿尔,头目 影印本 马上打电话 ;打印头 ;协调 mov dh,头排 mov dl,头颈部 异或波黑,波黑 mov啊,02h int 10h ;打印“@” 偏置磁头 mov啊,09h int 21h ; inc copy_col更新头部。 复制公司 mov al,复印件 莫夫·海德·科尔,艾尔 有限公司 ; 现在循环打印其他字符 cmp bl,复制长度 jl打印体 12月1日 jmp-rak rak: 呼叫延迟 jmpgetInput mov-ax,4c00h int 21h 主端 端干管,assembly,x86-16,Assembly,X86 16,如果要尝试代码,请按d键移动角色 问题是,当它到达最后一列时,我的函数正确地假设将head_col更改为0,这样它看起来就好像到达了屏幕的末尾。不幸的是,它在第80列末尾漏掉了一个字符,然后继续打印,但在下一行 然后,当它到达第13行的末尾时,它不会在第0列留下一个字符,但仍然向下移动另一行,在第3行继续打印后,它似乎返回到原始行,然后当它到达起始点时,它不再打印任何内容 问题是,当它到达最后一列时,我的函数正确地假设将head_col更改为0,这样它看起来就好像到达了屏幕的末尾。不幸的是,它在

如果要尝试代码,请按d键移动角色

问题是,当它到达最后一列时,我的函数正确地假设将head_col更改为0,这样它看起来就好像到达了屏幕的末尾。不幸的是,它在第80列末尾漏掉了一个字符,然后继续打印,但在下一行

然后,当它到达第13行的末尾时,它不会在第0列留下一个字符,但仍然向下移动另一行,在第3行继续打印后,它似乎返回到原始行,然后当它到达起始点时,它不再打印任何内容

问题是,当它到达最后一列时,我的函数正确地假设将head_col更改为0,这样它看起来就好像到达了屏幕的末尾。不幸的是,它在第80列末尾漏掉了一个字符,然后继续打印,但在下一行


您正在使用DOS函数9显示snake,但忘记了DOS使光标前进。您不应进入第80列。将极限值79改为78,看看问题是否消失。或者使用BIOS功能9显示蛇头。你已经把它用在蛇尾巴上了

如果“蛇”的长度超过一个字符,则必须为每个字符分配屏幕坐标(x,y)。你可以使用两个数组:一个用于X坐标,另一个用于Y坐标,第三个数组用于字符本身。是的,我这样做了,把它改为78,但如果我这样做,它有点臭:( .model small .data ;variables needed for snake body head db '@', '$' ;head and body symbols tail db ' ', '$' ;tail part set color to black snake_length db 3 ; 1-2 body 3 tail copy_snake_length db ? ;for loop sEnd db ? head_col db 40 ;starting col for snake head_row db 12 ;starting row for snake ; snake movement algorithm ; always copy the coordinates of the symbol in front. copy_col db ? copy_row db ? delaytime db 1 ;variable for control keys input db ? .stack 100h .code ;to delay time delay proc mov ah, 00 int 1Ah mov bx, dx jmp_delay: int 1Ah sub dx, bx cmp dl, delaytime jl jmp_delay ret delay endp ;make snake head go to the right righty proc cmp head_col,79 je resetposl zero: inc head_col jmp rightyie resetposl: mov head_col, 0 rightyie: mov dl,head_col mov dh,head_row xor bh, bh mov ah, 02h int 10h ret righty endp startgame proc mov dh, 12 ;row mov dl, 40 ;column xor bh, bh mov ah, 02h int 10h mov dx, offset head mov ah, 09h int 21h ret startgame endp mov cl, head_row mov copy_row,cl mov cl, head_col mov copy_col, cl ;print head mov dh, head_row mov dl, head_col xor bh, bh mov ah, 02h int 10h mov dx, offset head mov ah, 09h int 21h main proc mov ax, @data mov ds, ax ;set video mode mov al, 03h mov ah, 00h int 10h ;clear screen ;only need it once (reason no need to use function) mov ax, 0600h mov bh, 07h xor cx, cx mov dx, 184fh int 10h mov cx, 3200h ;stop cursor blinking mov ah, 01h int 10h ;set start head snake in the middle of the screen call startgame ;control mov ah,00h int 16h mov input, 'd' ;to change direction or to keep on going getinput: mov ah, 01h int 16h jz key mov ah,00h int 16h mov input,al ;control keys key: ;cmp input, 'w' ;je w ;cmp input, 's' ;je s ;cmp input, 'a' ;je a cmp input, 'd' je d jne rak d: mov cl, head_row mov copy_row,cl mov cl, head_col mov copy_col, cl mov dh, head_row mov dl, head_col xor bh, bh mov ah, 02h int 10h mov al, tail mov bh, 0 mov bl, 000h mov cx, 1 mov ah, 09h int 10h mov cl, snake_length mov copy_snake_length, cl dec copy_snake_length mov bl,0 printbody: mov al, head_row mov copy_row,al mov al, head_col mov copy_col, al call righty ;print head ;coordinates mov dh, head_row mov dl, head_col xor bh, bh mov ah, 02h int 10h ;printing "@" mov dx, offset head mov ah, 09h int 21h ; inc copy_col to update the head. inc copy_col mov al,copy_col mov head_col,al inc bl ; now loop to print other characters cmp bl,copy_snake_length jl printbody dec head_col jmp rak rak: call delay jmp getinput mov ax, 4c00h int 21h main endp end main