gpt4 book ai didi

c - 跳台 - 组件 8086

转载 作者:行者123 更新时间:2023-11-30 21:37:57 25 4
gpt4 key购买 nike

我尝试制作这样的开关盒:

 switch (si)
{
case 1:
printf( “Number One” );
break;

case 2:
printf( “Number Two” );
break;

case 3:
printf( “Number Three” );
break;

case 4:
printf( “Number Four” );
break;
}

在带有分支表/跳转表的程序集 8086 中:

enter code here
org 100h

mov si,1
mov bx,10
sub si,1
add si,si
mov bx,[bx+si]
jmp bx

address:
dw 14 Case1
dw 17 Case2
dw 21 Case3
dw 24 Case4

Case1: PRINTN "Number One"
jmp End

Case2: PRINTN "Number Two"
jmp End

Case3: PRINTN "Number Three"
jmp End

Case4: PRINTN "Number Four"

End:
mov ah, 0
int 16h
ret

PRINTN 就像 C 语言中的 printf。

我的代码不起作用,我不知道为什么......

我做错了什么?

最佳答案

使用表和存储一些字符串的示例:

表本身的地址 = OFFSET JTab

JTab dw OFFSET Case1, OFFSET Case2, OFFSET Case3, OFFSET Case4

偏移量为 T1、T2、T3、T4 且长度为 len1、len2、... 的一些字符串的地址

T1 db "Number One"
len1 = ($-T1)

T2 db "Number Two"
len2 = ($-T2)

T3 db "Number Three"
len3 = ($-T3)

T4 db "Number Four"
len4 = ($-T4)

关于c - 跳台 - 组件 8086,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23586121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com